重命名后打开文件要间歇性地抛出FileNotFoundException

时间:2012-01-17 19:49:01

标签: java file-io io filesystems

我有重命名文件的代码,然后立即尝试打开它。

在Windows XP上,这有时(但很少)会抛出FileNotFoundException。

renameTo的返回值为true。

这是一个已知问题吗?在文件实际出现之前重命名成功后,文件系统可能会有延迟吗?

由于

1 个答案:

答案 0 :(得分:0)

我在Linux上遇到同样的问题,在CIFS文件系统中移动文件。 Google Guava库中的等效方法Files.move(java.io.File, java.io.File)似乎没有这个问题。使Guava更好的原因是,如果renameTo()没有返回true,它会逐字节地将文件从源字节复制到目标字节。当我开始写这个答案时,我不知道Guava首先委托给File.renameTo(),但仍然:没有Guava的问题。