为什么 Windows 能够比删除文件夹更快地重命名文件夹?

use*_*446 0 windows windows-7 filesystems

在我所做的工作中,我经常需要重命名和删除文件夹。

按住 Shift 键删除文件夹的速度非常快 - 1-2GB 可能需要 10-20 秒,而重命名同一文件夹会立即发生。

我的理解是,当我移动删除一个文件夹时,Windows 正在检查文件索引并说“x 到 y 的空间不再被这些文件占用”。

天真地,我认为 Windows 必须为文件夹重命名执行类似的过程 - 更改文件索引上的 Windows 路径。

有人可以对 Windows 重命名和删除文件夹时发生的情况进行高级概述吗?

AFH*_*AFH 6

重命名文件夹(或文件)需要:

  • 检查父文件夹中是否不存在新名称;
  • 覆盖相应目录条目中的名称。

重命名的目录树中的子文件夹或文件不会受到任何影响。

删除目录需要:

  • 遍历目录树以查找每个子目录中的每个文件;
  • 检查每个文件是否在使用中,并通过修补其目录并将其使用的空间标记为磁盘分配表中的可用空间来删除​​它;
  • 一旦从子目录中删除所有文件,删除目录并使其空间可用,就像文件一样;
  • 继续这个过程,直到最终原始目录被删除。

因此,删除目录的时间取决于文件和子目录的数量,以及每个文件和子目录的大小和碎片程度。

另一方面,将目录移动到不同的磁盘或分区需要在每个子目录中创建和复制每个文件,以及删除源目录。