在 NTFS 上的驱动器之间移动文件夹并保留时间戳



对不起,我知道这听起来像是一个新手问题。但说真的,我是一个经验丰富的开发人员,我知道Windows 7 Pro 64位等会说,"哦,如果你将NTFS树从一个驱动器移动到另一个驱动器,当我编写子文件时,这实际上意味着我正在修改父文件夹,所以我将更新其时间戳。因此,我最终发现所有目标文件的时间戳与原始文件相同,但所有文件夹都具有相同的刚刚修改的日期/时间。

所以我明白发生了什么。而且我知道我可以编写自己的实用程序(我有)来复制/移动NTFS上的文件。但是公用事业是有风险的---如果他们没有NTFS感知,他们可能会忽略其他属性或错过NTFS备用数据流(ADS)等。

那么有谁知道一个好的,NTFS感知的树移动实用程序,它可以简单地移动所有树并维护时间戳?我不想冒失去任何东西的风险。谢谢。

从Helge Klein的回答中得到提示,我更仔细地研究了Robocopy。事实证明,Robocopy(最新版本,例如Windows 7附带的版本)实际上可以复制复制的文件夹结构的时间戳。还有一个"移动"选项可以在复制后删除源目录,但在Microsoft的无限智慧中,这与"保留目录时间戳"选项不兼容,因此您必须在复制后删除源树。

命令行参数选项令人生畏。我做了一些研究,使用 Robocopy 复制保留目录时间戳的基本命令是这样的:

robocopy %1 %2 /e /dcopy:T

。其中%1是源目录,%2是目标目录。

如果要确保复制所有内容(包括 NTFS 安全性、所有者和审核权限),请指定应复制所有属性并使用备份模式,如下所示:

robocopy %1 %2 /b /e /copyall /dcopy:T

但是,使用这些额外选项将需要完全管理员权限(而不仅仅是管理员帐户)。例如,单击"开始",右键单击"命令提示符",然后选择"以管理员身份运行"。然后输入上面的命令。

附言我已经验证了Robocopy也传输NTFS流。

SyncIt做到了这一点,就像Robocopy一样好,具有漂亮的GUI和轻松查看和选择要复制的文件的选项。http://www.grigsoft.com/wndsync.htm

(不过要注意,在极少数情况下,此工具会以某种方式损坏目标文件——使用下载管理器下载的文件发生在我身上,特别是 FlashGet 和 Orbit Downloader,只有前 25kb 被正确复制,其余的都填充了零,我不知道解释。我见过 Robocopy 在同样罕见的情况下失败 - 它被相似的文件名混淆,复制一个文件而不是另一个文件,因此错过了另一个文件。所以现在我确保始终使用 Total Commander 或 WinMerge 验证副本是否完美。

我打算推荐 robocopy,但是当我尝试这个场景时,我发现(令我惊讶的是)它将复制的目录保留在新日期,如您所描述的那样。

另一方面,总指挥官也会复制目录的时间戳。

相关内容

最新更新