在目录中列出文件时,我注意到一个奇怪的行为。我的情况是我有一个 txt 文件列表,我保存在数据库中,并且对应于这些数据文件有 xml 文件,其中包含每个 txt 的一些标签,这些标签与它们在 db 中的元属性相关联。
当我从目录中列出文件并读取 xml 文件时,流如何更改并再次列出已添加到 db 的文件。文件名在我的数据库中是 id 并且是唯一的,重新列出它们违反了主键约束。
我想知道为什么listing会受到干扰?
try (DirectoryStream<Path> directoryStream = Files.newDirectoryStream(folderReader,filter){
for (Path file : directoryStream) {
// Read XML
// add txt file to database
// attach meta props to that file
}
}catch(IOException ex){}
现在对于某些文件,它运行良好,但随后一些已列出的文件又回来了。就像 1.txt 已处理并保存在 db 中,但在稍后的循环中再次列出。