此問題與Simulating file system access有關。從文件系統中隨機選擇一個文件
我需要隨機選擇文件和目錄作爲文件操作的參數,如重命名,寫入,讀取等。我打算做的是將所有文件和目錄與他們的路徑列表並隨機選擇這個清單。但是,隨着文件和目錄在實際文件系統中的創建和刪除,列表也必須更新。我發現維護列表並以這種方式更新它是低效的,並且它也必須是原子的,以便稍後的操作不訪問先前操作刪除的文件。
你能否提出一種選擇文件的不同方式..可能有點直接從文件系統中完成...但是我們如何知道文件路徑。
感謝
我發現了一些有趣的事情在這裏Randomly selecting a file from a tree of directories in a completely fair manner特別是在 邁克爾·巴伯的答案,但是不能夠完全按照它由於我的無知蟒
我的回答幾乎描述了他的臨時解決方案。隨機化最大深度應該有所幫助。我認爲這個問題最大的不同在於它涉及到文件系統的一個子樹。我不想經常從根目錄走,只是爲了確保每個文件都有被選中的機會。 –
該操作沒有「是原子的」 - 在選擇一個文件(來自緩存列表)之後,可以對其進行測試。另一位(不使用各種通知系統)會變得相當昂貴。 – 2011-09-02 06:02:59
@pst ...啊,沒有想到像測試存在的簡單興奮。謝謝。沒有得到你的意思,「另一位(沒有使用各種通知系統)可能會相當昂貴」 –