如果文件已存在,则在Windows中复制文件时为文件创建的日期错误


9

在Windows 7上复制文件(或创建新文件)时遇到问题。如果我复制文件,我希望创建的日期正确,但有时并非如此。通常它可以工作,但是下面是一个不起作用的示例:

我的桌面上有两个文件夹,分别是文件夹1和文件夹2。我在文件夹1中创建了一个名为852pm的新文本文件(或创建时)。我将文件复制到文件夹2。复制的文件具有正确的创建日期。我删除复制的文件,请稍等片刻,然后再次复制。创建日期错误。创建日期来自删除的文件。

我尝试先清空回收站,但这没有用。有时使用相同名称创建新文件会显示旧的创建日期(并修改了新日期)。

为什么会这样?在这种情况下,如何使新文件显示正确的创建日期?

Answers:


11

文件隧道

引用官方KB文章Windows NT包含文件系统隧道功能

在使用该元信息删除或重命名并重新引入一个新的目录条目之后,就会发生这种情况(如果发生创建或重命名,导致该名称的文件在短时间内再次出现)。

这个想法是模仿MS-DOS程序使用安全保存方法时预期的行为。他们将修改后的数据复制到临时文件,删除原始文件,然后将临时文件重命名为原始文件。完成后,这似乎应该是原始文件。Windows在FAT和NTFS文件系统上都执行隧道操作,以确保在16位应用程序执行此安全保存操作时保留长文件名/短文件名。

本文还介绍了如何增加缓存时间或完全禁用隧道功能。

禁用文件隧道

  1. Win+ R,键入regedit,然后单击确定

  2. 导航到以下注册表项:

    HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ FileSystem
    
  3. 右键单击右窗格中的空白区域,然后选择“ 新建”>“ DWORD(32位)值”

  4. 命名新值MaximumTunnelEntries
    确保将其设置为0:这意味着将不会创建隧道条目。

附加信息

“隧道”的名称来自量子力学(非常酷):

负责在Windows 95上实现隧道的开发人员对量子力学的类比大为​​推::有关最近删除或最近重命名的文件的信息片段保存在称为“夸克”的数据结构中。”

资料来源:文件系统隧道传输的历史

进一步阅读


0

您可以使用以下命令手动更新创建时间:

powershell (ls YourFile.txt).CreationTime = Get-Date

...并在批处理文件中相同:

call powershell "(ls YourFile.txt).CreationTime = Get-Date"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.