Переименование непустого каталога внутри ZIP с использованием Java NIO - PullRequest
0 голосов
/ 29 августа 2018

Согласно: Как переименовать (не переместить) файл в JDK7?

Я пытаюсь переименовать имя папки не пустой папки внутри ZIP с помощью Java NIO

Мой результат - новый каталог создан без файлов внутри и не удаляет старый.

Код, который я использовал, но он не работает:

String zip = "/Users/xxx/Documents/test123/big_change.zip";
    Map<String, String> env = new HashMap<>();
    env.put("create", "true");
    Path path = Paths.get(zip);

    URI uri = URI.create("jar:" + path.toUri());
    try (FileSystem fs = FileSystems.newFileSystem(uri, env)) {
        //rename dir
        Path oldPath = fs.getPath("/some/directory3");
        Files.move(oldPath, oldPath.resolve("/some/directory232323"), StandardCopyOption.REPLACE_EXISTING);


    } catch (IOException e) {
        e.printStackTrace();
    }

Что мне не хватает? (Я хочу только переименовать папку)

1 Ответ

0 голосов
/ 29 августа 2018

Вы можете переименовать каталог, используя java.nio.file.Files.move метод, а затем copy файлы с Files.walkFileTree:

Для перемещения дерева файлов может потребоваться копирование, а не перемещение каталогов, и это можно сделать с помощью метода copy в сочетании с методом утилиты Files.walkFileTree.

Вы можете следовать Java-учебнику :

import static java.nio.file.StandardCopyOption.*;

Files.move(source, target, REPLACE_EXISTING);

метод чаще всего используется с механизмом рекурсии файлового дерева. Для получения дополнительной информации см. Просмотр дерева файлов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...