8

我在一个目录中有大约 100,000 个文件。我必须将所有这些文件移动到另一个目录。有两种方法可以做到这一点。

  1. rename(oldfile, newfile)

  2. link(oldfile, newfile)
    unlink(oldfile)

哪种方法更好?还有其他更好的解决方案吗?

4

2 回答 2

10

简短的回答:

第一个解决方案。


使用rename调用你只执行一个系统调用,它可以被系统和/或实现进一步优化。您还清楚地说明了您打算做什么,这比简单地在程序的单个点上搜索最终性能更重要。

link/解决方案也有效,但目前unlink还不清楚您打算做什么。另外,您如何管理link多个文件系统?在某些文件系统或操作系统上,该链接甚至是不可能的。

于 2013-09-06T08:24:07.610 回答
4

使用rename().

并非所有文件系统都支持有多个文件链接,而且您根本不能有多个链接到一个目录。rename(),另一方面,总是有效的。

于 2013-09-06T08:25:05.503 回答