【发布时间】:2011-09-02 05:47:52
【问题描述】:
这个问题与Simulating file system access 有关。
我需要随机选择文件和目录作为重命名、写入、读取等文件操作的参数。我打算做的是列出所有文件和目录及其路径并从中随机选择列表。但是,随着在实际文件系统中创建和删除文件和目录,列表也必须更新。我发现以这种方式维护和更新列表效率低下,而且它还必须是原子的,以便以后的操作不会访问被先前操作删除的文件。
您能否建议一种不同的方式来选择文件..也许可以直接从文件系统中进行...但是我们如何知道文件的路径。
谢谢
我在这里Randomly selecting a file from a tree of directories in a completely fair manner 发现了一些有趣的东西,特别是在 Michael J. Barber 的回答,但由于我对 python 的无知,无法完全理解它
【问题讨论】:
-
我的回答几乎描述了他的临时解决方案。随机化最大深度应该会有所帮助。我认为这个问题的最大区别在于它涉及文件系统的子树。我不想为了确保每个文件都有平等的机会被选中而不断地从根目录走动。
-
该操作不必是“原子的”——在(从缓存列表中)选择一个文件后,可以测试它是否存在。另一部分(不使用各种通知系统)可能会变得相当昂贵。
-
@pst...啊哈,没想到像测试存在这样简单的事情。谢谢。没有明白你的意思,“另一位(不使用各种通知系统)可能会变得相当昂贵”
-
@Juggler 读取文件系统上的每个文件 ;-)
-
@pst 我已经说过了,你怎么会得到支持? :)
标签: c linux filesystems