如何使用Vala将文件移动到另一个目录?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Vala将文件移动到另一个目录?相关的知识,希望对你有一定的参考价值。
我试图根据Vala documentation将文件移动到另一个目录,但以下方法不起作用。
请告诉我,我是否误解了移动方法的工作原理。
moveMyFile V1:
public void moveMyFile(){
GLib.File dest = GLib.File.new_for_path("~/Desktop/dest/");
GLib.File src = GLib.File.new_for_path("~/Desktop/src/test.txt");
print("\ndest path : %s \n", dest.get_path());
print("src path : %s \n", src.get_path());
if(dest.query_exists() && src.query_exists()){
try {
src.move(dest, FileCopyFlags.NONE, null);
} catch (Error e) {
print ("moveMyFile Error: %s\n", e.message);
}
}
}
终端输出(没有错误,dest中没有test.txt):
dest path : /home/srdr/Serdar/Workspaces/WorkspaceBudgie/budgie-projects/budgie-trash/build/~/Desktop/dest
src path : /home/srdr/Serdar/Workspaces/WorkspaceBudgie/budgie-projects/budgie-trash/build/~/Desktop/src/test.txt
------------------Update 1----------------------
moveMyFile V2:
public void moveMyFile(){
GLib.File dest = GLib.File.new_for_path("~/Desktop/dest/test.txt");
GLib.File src = GLib.File.new_for_path("~/Desktop/src/test.txt");
print("\ndest path : %s \n", dest.get_path());
print("src path : %s \n", src.get_path());
if(dest.query_exists() && src.query_exists()){
try {
src.move(dest, FileCopyFlags.NONE, null);
} catch (Error e) {
print ("moveMyFile Error: %s\n", e.message);
}
}
}
终端输出(没有错误,dest中没有test.txt):
dest path : /home/srdr/Serdar/Workspaces/WorkspaceBudgie/budgie-projects/budgie-trash/build/~/Desktop/dest/test.txt
src path : /home/srdr/Serdar/Workspaces/WorkspaceBudgie/budgie-projects/budgie-trash/build/~/Desktop/src/test.txt
------------------Update 2----------------------
moveMyFile V3:
public void moveMyFile(){
string homePath = Environment.get_home_dir();
string destPath = homePath + "/Desktop/dest/test.txt";
string srcPath = homePath + "/Desktop/src/test.txt";
GLib.File dest = GLib.File.new_for_path(destPath);
GLib.File src = GLib.File.new_for_path(srcPath);
print("\ndest path : %s \n", dest.get_path());
print("src path : %s \n", src.get_path());
if(dest.query_exists() && src.query_exists()){
try {
src.move(dest, FileCopyFlags.NONE, null);
} catch (Error e) {
print ("moveMyFile Error: %s\n", e.message);
}
}
}
终端输出(没有错误,dest中没有test.txt):
dest path : /home/srdr/Desktop/dest/test.txt
src path : /home/srdr/Desktop/src/test.txt
答案
我正在检查dest文件是否存在。我从if语句中删除了dest.query_exists()。现在它正在运作。
public void moveMyFile(){
string homePath = Environment.get_home_dir();
string destPath = homePath + "/Desktop/dest/test.txt";
string srcPath = homePath + "/Desktop/src/test.txt";
GLib.File dest = GLib.File.new_for_path(destPath);
GLib.File src = GLib.File.new_for_path(srcPath);
print("\ndest path : %s \n", dest.get_path());
print("src path : %s \n", src.get_path());
if(src.query_exists()){
try {
print ("moveMyFile try\n");
src.move(dest, FileCopyFlags.NONE, null);
} catch (Error e) {
print ("moveMyFile Error: %s\n", e.message);
}
}
}
以上是关于如何使用Vala将文件移动到另一个目录?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android 中单击 ImageView 时从一个片段移动到另一个片段?