我在使用以下代码时遇到了一些问题:
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正在返回临时副本,而不是对真实内容的引用。
如何获得真实的创作时间?
答案 0 :(得分:4)
您可能遇到了操作系统中名为file tunneling的问题。 CreationFile
属性确实是实际文件的创建文件,而不是临时文件。但是,返回的日期可能不准确,因为此信息在操作系统中缓存,因为应用程序通常会删除并添加相同的文件而不是更改它。
在获得创建时间之前,在Refresh
上调用FileInfo
。这可能有所帮助。