我們有一個應用程序將文件存儲在臨時位置,直到用戶決定完成其事務。臨時目錄對於每個事務都是唯一的。一旦完成,文件將從臨時位置移動到最終位置,這對每個事務也是唯一的。這一切都沒有任何問題。.NET Directory.Move()vs File.Move()
我很吃驚,但谷歌搜索時,因此,我們無法找到上的任何話題被普遍認爲是最佳做法:
- 呼叫System.IO.Directory.Move(SRC, des)只需一次移動整個目錄,或者
- 調用System.IO.File.Move(src,des)一次移動一個文件。
由於這些決策通常依賴於多種因素,我應該注意以下幾點條件:
- 的源和目標目錄將永遠是在同一臺機器上,但應用程序使得呼叫將在同一網絡上的另一臺機器上。我相信應用程序服務器和文件服務器在同一臺物理機器上是不同的虛擬機,但我並不積極。
- 文件數可能在1到10之間,或更多。我自己並沒有監控生產系統,所以我不確定文件的平均數量或計數的傳播方式。
源和目標位於同一個卷/分區上嗎? – vcsjones
是的。廣義目錄結構是 \ temp \ 和 \ final \ 。 –
Eric
我只是說建立一個小的測試環境,並使用'Directory.Move()'比較'File.Move()'來記錄速度。做很多次,並以更快的速度進行。 – sab669