Как я могу переместить файл в другой каталог, используя Vala? - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь переместить файл в другой каталог согласно документации Vala , но следующий метод не работает.

Пожалуйста, скажите мне, если я неправильно понимаю, как работает метод перемещения.

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);
        }
    }

}

Терминальный вывод (без ошибок, без test.txt в dest):

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



------------------ Обновление 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);
        }
    }

}

Терминальный вывод (без ошибок, без test.txt в dest):

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



------------------ Обновление 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);
    }
}

}

Терминальный вывод (без ошибок, без test.txt в dest):

dest path : /home/srdr/Desktop/dest/test.txt 
src path : /home/srdr/Desktop/src/test.txt

1 Ответ

0 голосов
/ 04 июля 2018

Я проверял, что файл dest существует. Я удалил dest.query_exists () из оператора if. Сейчас это работает.

 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);
            }
        }

    }
...