You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复文件创建日期与实际当日日期不符的问题

根因分析

你遇到的是Windows NTFS文件系统内置的**隧道效应(File System Tunneling)**特性,和你的业务代码逻辑没有关联。
这个特性的设计初衷是兼容部分依赖文件元数据的老旧软件:当你删除一个文件后15秒内重新创建同名文件时,系统会自动复用原文件的创建时间、修改时间、属性等元数据,你观察到的创建时间滞后就是旧log.txt的创建时间被复用了。

可行解决方案

按推荐优先级排序如下:

  • 方案1:创建后主动覆盖创建时间(生产环境最推荐,无性能损失也不需要修改系统配置)
    新建文件后显式调用系统API设置创建时间为当前时间,.NET 环境下代码示例:
    // 先删除旧文件
    if (File.Exists("log.txt"))
    {
        File.Delete("log.txt");
    }
    // 创建新文件后立即设置创建时间
    using (var fs = File.Create("log.txt"))
    {
        // 写入初始化内容
    }
    // 按需使用本地时间或UTC时间
    File.SetCreationTime("log.txt", DateTime.Now);
    // File.SetCreationTimeUtc("log.txt", DateTime.UtcNow);
    
  • 方案2:延长删除和创建操作的间隔(仅适合测试场景验证问题)
    删除文件后等待15秒以上再创建新文件,超过系统默认的隧道缓存有效期后就不会复用旧元数据,但是会严重影响业务性能,不建议生产环境使用。
  • 方案3:全局禁用文件系统隧道效应(极度不推荐)
    可以通过修改注册表路径HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem下的MaximumTunnelEntryAgeInSeconds值为0,重启系统后隧道效应会全局失效,该修改会影响所有运行在系统上的软件,可能引发兼容性问题。

内容的提问来源于stack exchange,提问作者Aarnihauta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 10:54:03