首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >迭代DirectoryStream和同时更改目录的内容

迭代DirectoryStream和同时更改目录的内容
EN

Stack Overflow用户
提问于 2013-08-08 17:08:02
回答 1查看 424关注 0票数 10

DirectoryStream的文档明确指出:

迭代器是弱一致的。它是线程安全的,但在迭代时不会冻结目录,因此它可能(或不可能)反映在创建DirectoryStream之后对目录的更新。

在我的机器上,我在调试模式下对目录执行了一个简单的迭代。在迭代完成之前,我中断了执行,将一个文件添加到正在迭代的目录中并继续进行。迭代没有看到额外的文件。

我的问题是:在什么情况下,迭代将反映目录内容的更新?不幸的是,正式的文档对此非常模糊。至少可以这么说。

EN

回答 1

Stack Overflow用户

发布于 2014-02-14 13:55:39

这些文件故意含糊不清。JVM必须在许多不同类型的机器上运行: Windows和Unix衍生工具。不同的文件系统有不同的行为。如果你想让你的程序在不止一台计算机上可靠地工作,你必须(重复一遍,必须)为最坏的情况设计。

“最不惊讶”法则建议,您应该使用整个DirectoryStream来获取快照(或非常接近一个快照),遍历快照,然后重新启动流。然后,您可以比较快照的不同版本,以确定对基础目录的更改。

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

https://stackoverflow.com/questions/18131941

复制
相关文章

相似问题

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