抱歉,我知道这听起来像是一个新手问题。但说真的,我是一名经验丰富的开发人员,我知道 Windows 7 Pro 64 位等会说,“哦,如果你将 NTFS 树从一个驱动器 move 到另一个驱动器,当我编写子文件时,这实际上意味着我正在修改父文件夹,因此我将更新其时间戳。”因此,我最终发现所有目标文件都具有与原始文件相同的时间戳,但所有文件夹都具有相同的刚刚修改的日期/时间。
所以我明白发生了什么。我知道我可以编写自己的实用程序(我已经)来复制/move NTFS 上的文件。但实用程序是有风险的——如果它们不支持 NTFS,它们可能会忽略其他属性或错过 NTFS 备用数据流 (ADS) 等内容。
那么有谁知道一个好的、支持 NTFS 的树 move 实用程序,它可以简单地 move 所有树并维护时间戳?我不想冒失去任何东西的风险。谢谢。
最佳答案
从 Helge Klein 的回答中得到暗示,我更仔细地研究了 Robocopy 。事实证明,Robocopy(最新版本,例如 Windows 7 附带的版本)实际上可以复制复制的文件夹结构的时间戳。还有一个“move ”选项可以在复制后删除源目录,但以微软的无限智慧,这与“保留目录时间戳”选项不兼容,因此您必须在复制后删除源目录。
命令行参数选项令人望而生畏。我做了一些研究,使用 Robocopy 复制保留目录时间戳的基本命令是这样的:
robocopy %1 %2 /e /dcopy:T
...其中 %1
是源目录,%2
是目标目录。
如果您想确保复制所有内容,包括 NTFS 安全性、所有者和审核权限,请指定应复制所有属性并使用备份模式,如下所示:
robocopy %1 %2 /b /e /copyall /dcopy:T
但是,使用这些额外选项将需要完整的管理员权限(而不仅仅是管理员帐户)。例如,单击开始,右键单击命令提示符,然后选择以管理员身份运行。然后输入上面的命令。
附注我已经验证 Robocopy 也可以传输 NTFS 流。
关于timestamp - 在 NTFS 上的驱动器之间 move 文件夹并保留时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10249444/