【发布时间】:2011-09-26 05:51:21
【问题描述】:
这是一个可怕的问题(在我看来),我已经尽力为自己找到有用的文档,但运气不佳 - 无论如何,这里是:
我有代码需要对目录中的所有文件进行一些操作。我在 File 对象中设置了目录,并使用 fileObject.list() 来遍历目录中的文件。我让这段代码在一夜之间运行,它(经过多次调整)在某个时候崩溃了。我试图弄清楚这发生在什么时候(是的,我的日志记录很糟糕)。现在,根据this javadoc 列出文件时不能保证顺序(字母或其他),我想知道是否有任何一致性保证?这意味着当我两次运行相同的代码时,我会得到完全相同的文件顺序吗?逻辑告诉我应该这样做,我已经基于此恢复了操作,但我对此表示怀疑。另外,我很好奇 javadoc 中的“没有特定顺序意味着什么”。
【问题讨论】:
-
如果你想保证订单,为什么不使用
Comparator? -
应用程序运行时文件可能会发生变化......因此每次运行时可能会有所不同。该顺序很可能取决于文件系统实现。答案很可能是“是的,有一致性”,就好像你在命令行上执行“ls”或“dir”会给你一致性,但不能保证按字母排序。
-
啊,是的,我会(现在),但这是为了恢复失败的运行,我不想重复处理过的文件。
-
@ricosrealm ls 通过提供默认排序顺序让生活变得轻松。对于我的用例,这是一个只读目录,文件不会改变
标签: java