gpt4 book ai didi

Java 跨驱动器移动文件会导致 DirectoryNotEmptyException

转载 作者:行者123 更新时间:2023-12-02 02:44:54 28 4
gpt4 key购买 nike

我创建了一个简单的java程序,简而言之,它需要两个目录,然后将一个目录移动到另一个目录。该程序工作正常,除非我尝试在不同的驱动器之间移动文件,然后导致 java.nio.file.DirectoryNotEmptyException 即使它不介意非空目录(事实上我需要它来移动其中的所有内容)。

try {
Files.move(source, target, StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e1) {
System.out.println("Something went wrong");
e1.printStackTrace();
}

最佳答案

Files.move(file, cgbaFile.getParent(), StandardCopyOption.REPLACE_EXISTING);

对于目标,您需要提供要将文件移入的目录。这是不正确的。目标应该是您希望文件具有的新路径名——新目录加上文件名。

例如,假设您想移动 /tmp/foo.txt to the /var/tmp目录。您正在调用Files.move("/tmp/foo.txt", "/var/tmp")当你应该打电话 Files.move("/tmp/foo.txt", "/var/tmp/foo.txt") .

您收到该特定错误是因为 JVM 正在尝试删除目标目录以便用该文件替换它。

其中之一应该生成正确的目标路径:

Path target = cgbaFile.resolveSibling(file.getFileName());

Path target = cgbaFile.getParent().resolve(file.getFileName());

关于Java 跨驱动器移动文件会导致 DirectoryNotEmptyException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44748797/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com