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

C#中移动文件后无法获取文件实际创建日期求助

解决跨文件夹移动后无法获取文件实际创建日期的问题

哈哈,这个问题我太有共鸣了!之前处理文件批量迁移的时候踩过一模一样的坑,当时盯着返回的日期懵了半天🤦‍♂️

问题根源

其实这和Windows文件系统的机制直接相关:

  • 如果是同一个磁盘卷内移动文件:系统只是修改了文件的目录引用,文件本身没有被重新创建,所以File.GetCreationTime(file)能正常返回原始创建日期。
  • 如果是跨磁盘卷移动文件:系统本质上是把文件复制到目标卷,再删除原文件。这时候目标卷的新文件会被标记为“创建于复制时刻”,所以File.GetCreationTime返回的就是移动操作的当前日期,而非原始创建时间。

解决方案分两种情况处理

1. 提前规划:移动文件时保留原始创建日期

如果还没执行移动操作,或者可以重新移动,直接在移动后手动同步源文件的创建时间就行:

FileInfo sourceFile = new FileInfo(@"C:\OldFolder\example.txt");
FileInfo destFile = new FileInfo(@"D:\NewFolder\example.txt");

// 执行移动操作
sourceFile.MoveTo(destFile.FullName);

// 同步源文件的创建时间到目标文件
destFile.CreationTime = sourceFile.CreationTime;
destFile.CreationTimeUtc = sourceFile.CreationTimeUtc;

这样后续用File.GetCreationTime(destFile.FullName)就能拿到原始日期了。

2. 事后补救:已移动文件如何找回原始创建日期

如果文件已经被移动,分两种场景:

  • 带内置元数据的文件(图片、Office文档等):这类文件会把原始创建时间存在自身的元数据里,比如图片的Exif信息、Word文档的属性。可以通过读取元数据获取:
    比如读取图片的Exif创建时间(用System.Drawing举例):
    using (Image image = Image.FromFile(destFile.FullName))
    {
        PropertyItem propItem = image.GetPropertyItem(36867); // Exif创建时间的Tag ID
        string originalDate = Encoding.ASCII.GetString(propItem.Value).Trim('\0');
        DateTime originalCreationTime = DateTime.ParseExact(originalDate, "yyyy:MM:dd HH:mm:ss", null);
    }
    
  • 普通文件(文本、压缩包等无内置元数据):如果没有提前备份源文件的创建时间,基本没办法恢复了——除非你有系统日志、第三方文件管理工具的记录,或者原文件还在回收站里。

另外还有一个通用方法:利用Windows Shell的扩展属性读取“原始创建时间”,需要引用Microsoft.WindowsAPICodePack.Shell NuGet包:

using Microsoft.WindowsAPICodePack.Shell;
using Microsoft.WindowsAPICodePack.Shell.PropertySystem;

ShellFile shellFile = ShellFile.FromFilePath(destFile.FullName);
object originalDateObj = shellFile.Properties.GetProperty(SystemProperties.System.FileOriginalDate).ValueAsObject;
DateTime originalCreationTime = (DateTime)originalDateObj;

这个属性会优先返回文件的原始创建时间,不管是否跨卷移动(前提是文件系统支持并保留了该属性)。

总结

  • 同卷移动:File.GetCreationTime直接可用;
  • 跨卷移动:要么提前手动同步时间,要么读取文件元数据/Shell扩展属性来获取原始日期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 19:17:39