回答
这取决于文件系统的实现细节。在大多数文件系统中,它应该是一个命令,O(1),操作。
什么是订单操作? (如果您在谈论“大O”符号...请使用符号...) –
此外,移动和删除文件不是“O(1)”。移动(涉及拷贝的地方)是“O(N)”,删除可能是'O(logN)',其中'N'是文件的大小。 –
重命名文件基本上只是改变了路径本地化的方式,所以应该尽可能快地更改路径。删除确实意味着删除一个引用,所以它也应该相当快。
唯一的情况下,你应该看到在运行成本显著增加是复制文件或者改变到另一个分区/硬盘路径。这些情况实际上会要求文件系统逐个文件地复制文件。
多久它实际上需要将在很大程度上取决于你使用(EXT3,EXT4,FAT,...),当然在你的硬盘和硬盘的连接速度(即你的主板在文件系统上)。
- 如果您需要关于您的问题的明确答案,我不认为您可以避免使用您的特定测试设置自行进行基准测试。
不可能说哪个更快,因为它取决于各种因素。 (而且很可能是无关紧要的......因为他们做不同的事情,因此不能互换。)
但是:
重命名和移动通常是等价的,如果源和目标位置是在同文件系统。
如果移动涉及在文件系统之间移动,则可能是最昂贵的。必须复制
O(N)
字节。否则,删除可能是最昂贵的。操作系统需要更新父目录并将该文件使用的所有光盘块标记为空闲。
实际成本还取决于操作系统和所涉及的文件系统的类型,以及(在某些情况下)所涉及文件的大小 - 参见上文。
- 1. 文件未重命名或删除
- 2. 文件重命名/删除
- 3. 的.htaccess重写同时更改域名,并删除路径
- 4. 从路径中删除文件名
- 5. 从文件名中删除路径
- 6. 从文件名删除路径
- 7. glob.iglob从文件名中删除路径
- 8. 重命名文件夹路径
- 9. htaccess重命名文件夹路径
- 10. 重命名文件路径和Doxygen
- 11. 更改上下文路径或URL以排除项目名称
- 12. 重命名路径名为
- 13. 更改文件的路径
- 14. 强制删除并重命名VB6中的文本文件
- 15. YapDatabaseRelationship在重命名时不更新文件路径
- 16. 文件删除和重命名问题
- 17. 文件重命名和删除错误
- 18. 删除和重命名文件
- 19. 重命名和删除文件
- 20. 删除或重命名sqlite中的列
- 21. PowerShell脚本复制和重命名为文件路径发现
- 22. 使用打开的句柄删除或重命名文件
- 23. 无法删除或重命名Xcode 4.6 Project Navigator中的文件?
- 24. Git与重命名或删除的文件合并冲突
- 25. 从重命名文件的backport更改
- 26. 删除文件名的子路径和创建文件结构
- 27. 重命名文件,而不是文件路径中的目录
- 28. 重命名批处理文件中的文件路径
- 29. 文件路径和删除nodejs文件
- 30. 更改Magento文件路径
您可能会得到更好的答案,如果你让你的问题更好。 “成本”是什么意思?绝对时间或时间复杂度(“大O”符号)? – Neowizard