【发布时间】:2023-03-13 08:33:02
【问题描述】:
我一直在用石英写一个批处理系统的程序,但我发现了一个问题,
if(!file.renameTo(new File(PATH_FILE_PROCESSED+file.getName())))System.out.println("Cannot Move File :"+file.getAbsolutePath());
else{
if(!file.delete())System.out.println("Cannot Delete File :"+file.getAbsolutePath());
}
我想将文件从一个目录移动到另一个目录,但我无法在同一进程中删除该文件,根据我的分析,我认为该文件尚未完成复制然后运行 file.delete(); 我的问题是,有没有办法等到文件完成复制然后运行file.delete? 谢谢
【问题讨论】:
-
阅读您的代码,当
renameTo调用成功 时,您似乎进入了else块。因此,该文件不再存在于其原始位置。所以,你不能从它原来的位置删除它,因为它已经不存在了。 -
no renameTo in java 实际上是复制文件而不是移动文件,这就是为什么我想在成功时删除
-
如果
File.renameTo将文件复制到您的计算机上而不是重命名它,则说明您的平台存在问题 - 它不应该这样做。同样的问题也可能影响删除的操作。
标签: java file file-moving