我正在自动化一系列我们经常进行的操作,以节省时间。这包括移动文件和启动一些批处理。
在该特定情况下,我正在尝试将文件从一个位置复制到另一个位置。一切都很顺利,直到我尝试使用ATOMIC_MOVE
复制选项。这是我的代码:
private void copyToDropFolder(Datafile datafile, String company) throws IOException{
Path datafilePath = datafile.getDataPath();
String dropFolder = locations.getLocationFor("default");
Path dropPath = Paths.get(dropFolder, company.toUpperCase(),locations.getLocationFor("drop"), datafile.getFileName());
Files.copy(datafilePath, dropPath, StandardCopyOption.ATOMIC_MOVE);
}
我已经检查并解决了datafilePath和dropPath的位置,它们都是有效的。我已经尝试过其他两个标准复制选项,程序运行良好。只有在使用
ATOMIC_MOVE
时,我才会遇到UnsupportedOperationException
。虽然我并不一定需要这个具体的选项,但我很好奇为什么它不能工作。我无法找到其他关于此问题的报告。我在Windows 7机器上进行此操作。我是否漏掉了什么?或者
ATOMIC_MOVE
确实不被支持?
ATOMIC_MOVE
来进行复制操作?这没有意义。或者你想使用link()
吗? - fgeFiles.createLink()
,这可能是你想要的。 - fge