我们有一个应用程序将文件存储在一个临时位置,直到用户决定完成他们的交易。每个事务的临时目录都是唯一的。一旦完成,文件就会从临时位置移动到最终位置,这对于每个事务也是唯一的。这一切都正常工作,没有任何问题。
我很惊讶,但是在搜索 Google 和 SO 时,我们找不到任何通常被认为是最佳实践的主题:
- 调用 System.IO.Directory.Move(src, des) 一次简单地移动整个目录,或者
- 调用 System.IO.File.Move(src, des) 一次移动一个文件。
由于这些决定通常取决于许多因素,我应该注意以下条件:
- 源目录和目标目录将始终位于同一台机器上,但进行调用的应用程序将位于同一网络上的不同机器上。我相信应用程序服务器和文件服务器是同一台物理机器上的独立虚拟机,但我并不肯定。
- 文件的数量可以从 1 到 10 或更多。我自己不监控生产系统,所以我不确定平均文件数,或者计数的分布范围。