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

标签 timestamp directory move ads ntfs

抱歉,我知道这听起来像是一个新手问题。但说真的,我是一名经验丰富的开发人员,我知道 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/

相关文章:

mysql - 如何将数据库中的 Unix 时间戳数据更改为 MySql 时间戳?

python - 如何在 Python 中查找两个目录?

python - 在多个目录中按名称搜索文件?

php - 函数 rename() 删除包含文件的目录

javascript - 使用javascript在dom树中将元素向上或向下 move 一位

php - MySQL数据库+时间戳/PHP

mysql - 时间戳(自动)何时更新?

删除时间戳末尾

batch-file - 使用批处理文件删除远程计算机上存在的文件夹

c++ - std::move 是否使指针无效?