C#,需要获取文件创建时间

时间:2014-08-01 14:16:22

标签: c# .net

我在使用以下代码时遇到了一些问题:

string today = DateTime.Now.ToShortDateString();
DirectoryInfo di = new DirectoryInfo(mySettings._TempDataStoragePath);
FileInfo[] files = di.GetFiles();
foreach (FileInfo f in files) 
{
    string fileDate = f.CreationTime.ToShortDateString();                   
    if (fileDate.Equals(today)) 
    {
                    ...
    }
}

我遇到的问题是f.CreationTime.ToShortDateString();返回今天的日期,而不是文件的实际创建日期。

我需要能够检查真正的创作时间。

我怀疑DirectoryInfo正在返回临时副本,而不是对真实内容的引用。

如何获得真实的创作时间?

1 个答案:

答案 0 :(得分:4)

您可能遇到了操作系统中名为file tunneling的问题。 CreationFile属性确实是实际文件的创建文件,而不是临时文件。但是,返回的日期可能不准确,因为此信息在操作系统中缓存,因为应用程序通常会删除并添加相同的文件而不是更改它。

在获得创建时间之前,在Refresh上调用FileInfo。这可能有所帮助。