File.listFiles()与目录删除冲突

时间:2018-05-09 18:36:09

标签: java windows java-io

JSONbject在目录中表现得很突出吗?它是否包含文件和/或目录句柄?是File.listFiles()进入目录吗?

我的一个进程是在一个目录上调用Java cd,另一个正在尝试删除同一目录(例如使用C#' s File.listFiles())。删除失败,"目录不为空" (这是一条Windows错误消息)。我怀疑是Directory.Delete(DIRECTORY, true);在某种程度上阻碍了它,虽然它只是在进行读操作。

注意:Java进程以递归方式读取目录(如果它找到了子目录,它也会读取它们)。因此,

很可能

File.listFiles()

实际上与

发生冲突

Directory.Delete(DIRECTORY, true)

显然SUBDIRECTORY的Java阅读器在SUBDIRECTORY上持有一些类句柄。这会阻止删除父DIRECTORY吗?

1 个答案:

答案 0 :(得分:0)

我现在已经确认File.list()(但也可能File.listFiles() 确实会导致此问题。请参阅上面的评论,以及相应TeamCity bug report中的血腥细节。