根据: How do I rename (not move) a file in JDK7?
我正在尝试使用Java NIO重命名ZIP中非空文件夹的文件夹名称
我的结果是创建了一个新目录,里面没有文件,并且没有删除旧目录。
我使用的代码但不起作用:
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();
}
我想念什么? (我只想重命名文件夹)
答案 0 :(得分:2)
您可以使用java.nio.file.Files.move方法重命名目录,然后使用copy
将文件Files.walkFileTree
重命名:
移动文件树可能涉及复制而不是移动目录,这可以通过将 copy 方法与Files.walkFileTree实用程序方法结合使用来完成。
您可以关注java tutorial:
import static java.nio.file.StandardCopyOption.*; Files.move(source, target, REPLACE_EXISTING);
该方法最常与文件树递归机制一起使用。有关更多信息,请参见Walking the File Tree。