首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java 2 DirectoryStream列表在文件更改时发生更改

Java 2 DirectoryStream列表在文件更改时发生更改
EN

Stack Overflow用户
提问于 2014-06-09 07:36:41
回答 1查看 386关注 0票数 0

在目录中列出文件时,我注意到了一种奇怪的行为。我的情况是,我有一个txt文件列表,我保存在数据库中,对应于这些数据文件,有一些xml文件包含每个txt的一些标记,这些标记在db中作为它们的元属性相关联。

当我列出目录中的文件并读取xml文件时,流是如何改变的,并再次列出已经添加到db中的文件。文件名在我的db中是id并且是唯一的,重新列出它们违反了主键约束。

我想知道为什么名单会受到干扰?

代码语言:javascript
复制
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一样,but被处理并保存在db中,但在后面的循环中再次列出。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-10 08:41:04

您的上一个comment似乎准确地描述了这里发生的事情。

我猜DirectoryStream添加(或不添加)新保存的文件,而不检查它们以前的清单。

在本例中,最好在处理条目之前将DirectoryStream中的条目添加到另一个Iterable甚至Set (例如HashSet),然后检查它们是否在Set之前(Set#add返回的布尔值正是出于这个原因)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24115698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档