我在目录中有大约100,000个文件。我必须将所有这些文件移动到另一个目录。有两种方法可以做到。
rename(oldfile, newfile)
link(oldfile, newfile)
unlink(oldfile)
哪种方法更好?还有其他更好的解决方案吗?
答案 0 :(得分:10)
简短回答:
第一个解决方案。
使用rename
调用只执行一次系统调用,系统和/或实现可以进一步优化。
您还清楚地说明了您打算做什么,这比仅仅在您的计划的单个点上搜索最终表现更重要。
link
/ unlink
解决方案也有效,但目前还不清楚您打算做什么。
另外,如何管理多个文件系统上的link
?并且在某些文件系统或操作系统上甚至无法实现链接。
答案 1 :(得分:4)
使用rename()
。
并非所有文件系统都支持具有多个文件链接,并且您根本无法拥有指向目录的多个链接。另一方面,rename()
始终有效。