Как переименовать файл на сервере, который монтируется локально? - PullRequest
0 голосов
/ 04 сентября 2011

Я пытаюсь переименовать весь каталог программно. Каталог находится на сервере, который смонтирован в локальной файловой системе. Я пытаюсь это сделать так:

public static void main(String[] args) {
    File dir = new File("/Volumes/video/Serien/Scrubs/Season 1");
    System.out.println("Start renaming: " + dir);

    String[] files = dir.list();
    for (String file : files) {
        System.out.println("Old name: " + file);
        File renamedFile = new File(file);
        System.out.println(renamedFile.toString());
        boolean success = renamedFile.renameTo(new File("Test " + renamedFile.toString()));
        System.out.println("New name: "+ renamedFile.toString());
        System.out.println(success);
        break;
    }
}

Теперь я пытаюсь переименовать только первое, но, тем не менее, возвращает false и не переименовывает.

Так есть ли намеки, почему? Я не получаю никаких исключений. Я думаю, это потому, что сервер требует аутентификации?

Edit: так как renameTo (), кажется, зависит от платформы: я использую Lion OSX

1 Ответ

2 голосов
/ 04 сентября 2011

Попробуйте использовать полный путь + имя каталога, когда вы пытаетесь переименовать как старый, так и переименованный каталог. Я считаю, что list () возвращает имя каталога только без полного пути. У меня была похожая проблема раньше, и она работала, когда я это делал Надеюсь, это работает и для вас.

...