我在 Windows 7 上复制文件(或创建新文件)时遇到问题。如果我复制文件,我希望创建日期正确,但有时却不正确。通常它可以正常工作,但以下是它不起作用的一个例子:
我的桌面上有两个文件夹,文件夹 1 和文件夹 2。我在文件夹 1 中创建了一个名为 852pm(或创建日期)的新文本文件。我将文件复制到文件夹 2。复制的文件具有正确的创建日期。我删除复制的文件,等一分钟,然后再次复制。创建日期是错误的。创建日期来自已删除的文件。
我尝试先清空回收站,但没用。有时创建同名的新文件会显示旧的创建日期(并修改了新日期)。
为什么会发生这种情况?在这种情况下,我该如何让新文件显示正确的创建日期?
答案1
文件隧道
引用官方知识库文章Windows NT 包含文件系统隧道功能:
这种情况发生在删除或重命名并重新引入具有该元信息的新目录条目之后(如果发生创建或重命名导致该名称的文件在短时间内再次出现)。
这个想法是模仿 MS-DOS 程序在使用安全保存方法时所期望的行为。它们将修改后的数据复制到临时文件,删除原始文件并将临时文件重命名为原始文件。完成后,这应该看起来像原始文件。Windows 在 FAT 和 NTFS 文件系统上执行隧道,以确保在 16 位应用程序执行此安全保存操作时保留长/短文件名。
本文还解释了如何增加缓存时间或完全禁用隧道功能。
禁用文件隧道
按Win+ R,输入
regedit
,然后单击好的。导航到以下注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
右键单击右侧窗格中的空白区域并选择新建 > DWORD(32 位)值。
命名新值
MaximumTunnelEntries
。
确保将其设置为0
:这意味着不会创建任何隧道条目。
附加信息
“隧道效应”这个名字来自量子力学(非常酷):
负责在 Windows 95 上实现隧道的开发人员对量子力学类比有点着迷:有关最近删除或最近重命名的文件的信息片段保存在称为“夸克”的数据结构中。”
来源:文件系统隧道的秘密历史
进一步阅读
答案2
您可以使用此命令手动更新创建时间:
powershell (ls YourFile.txt).CreationTime = Get-Date
...批处理文件中也同样如此:
call powershell "(ls YourFile.txt).CreationTime = Get-Date"