使用 jdk7 ,我试图将java.nio.file.Files
类move一个空目录(假设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。
修改
除了接受的答案外,还有another solution
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();
}
答案 0 :(得分:4)
我没有意识到jdk7 java.nio.file.Files是必需的,所以这里是编辑过的解决方案。请查看它是否有效,因为我之前从未使用过新的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();
}
答案 1 :(得分:0)
在Files.move方法的javadoc中,您将找到一个示例,它将文件移动到目录中,保留相同的文件名。这似乎是你在寻找的。 p>
答案 2 :(得分:0)
Path source = ...
Path newdir = ...
Files.move(source, newdir.resolve(source.getFileName()), REPLACE_EXISTING);
//Files.move(source, newdir.resolve(source.getFileName()), StandardCopyOption.REPLACE_EXISTING);