Как перемещать каталоги с помощью jdk7 - PullRequest
4 голосов
/ 02 июня 2011

Используя jdk7 , я пытаюсь использовать класс java.nio.file.Files для перемещения пустой директории, скажем Bar, в другую пустую директорию, скажем Foo

Path source = Paths.get("Bar");
Path target = Paths.get("Foo");
try {
    Files.move(
        source,
        target,  
        StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
    e.printStackTrace();
}

После выполнения этого фрагмента кода я ожидал, что каталог Bar будет находиться в каталоге Foo (...\Foo\Bar). Вместо этого это не так. А вот и кикер, он тоже был удален. Также исключений не было .

Я делаю это неправильно?

Примечание

Я ищу jdk7-специфичное решение. Я также изучаю проблему, но я решил, что я посмотрю, есть ли кто-нибудь еще, играющий с jdk7.

EDIT

В дополнение к принятому ответу, есть другое решение

Path source = Paths.get("Bar");
Path target = Paths.get("Foo");
try {
    Files.move(
    source,
    target.resolve(source.getFileName()),  
    StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
    e.printStackTrace();
}

Ответы [ 3 ]

4 голосов
/ 02 июня 2011

Я не осознавал, что jdk7 java.nio.file. Файлы - это необходимость, поэтому здесь отредактированное решение. Посмотрите, работает ли он, потому что я никогда раньше не использовал новый класс Files.

Path source = Paths.get("Bar");
Path target = Paths.get("Foo", "Bar");
try {
    Files.move(
        source,
        target,  
        StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
    e.printStackTrace();
}
0 голосов
/ 31 мая 2013

Вот решение.


http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html
Предположим, мы хотим переместить файл в новый каталог, сохранив то же имя файла и заменив любой существующий файл с таким именем в каталоге:
Path source = ...
Path newdir = ...
Files.move(source, newdir.resolve(source.getFileName()), REPLACE_EXISTING);
//Files.move(source, newdir.resolve(source.getFileName()), StandardCopyOption.REPLACE_EXISTING);
0 голосов
/ 02 июня 2011

В javadoc для метода Files.move вы найдете пример, где он перемещает файл в каталог, сохраняя то же имя файла.Похоже, это то, что вы искали.

...