获取文件创建时间c#

时间:2016-04-11 19:24:46

标签: c#

使用WIN32_FIND_DATA获取带有FindFirstFile和FindFNextFile的文件时,我正在尝试执行一项任务,要求我枚举来自两个不同目录的文件,然后我需要找出第一个目录中先前创建的文件第二个目录中的文件。麻烦的是CreationTime函数为所有文件返回错误的统一值,如1/1/1601 3:00:00 AM。有谁知道如何获得正确的创作时间?也许这与fCreationTime的FILETIME类型有关,我不知道。

我有......

> struct NameAndDate
>     {
>         public string Name;
>         public DateTime Date;
>         public NameAndDate(string name, DateTime date)
>         {
>             Name = name;
>             Date = date;
>         }
>     }    
     for (int i = 0; i < AllFiles.Count; i++)
>      tmp[i] = new NameAndDate(AllFiles[i], File.GetCreationTime(AllFiles[i]));

ALLFiles是给定目录中的文件列表,我将文件存储在struct类型的数组中,该数组包含文件名和创建时间。这将使我更容易进行比较任务。请注意,我也尝试使用..

FileInfo fd = new FileInfo(AllFiles[i]);
 tmp[i] = new NameAndDate(AllFiles[i], fd.CreationTime);

2 个答案:

答案 0 :(得分:1)

您可能需要查阅文档,尤其是var client = mqtt.connect('ws://<app-id>.azurewebsites.net'); 部分:

https://msdn.microsoft.com/en-us/library/system.io.file.getcreationtime(v=vs.110).aspx

提出2点你应该找到有趣的

1 - 可能不准确:

  

此方法可能返回不准确的值,因为它使用的是本机函数,其值可能无法由操作系统不断更新。

2 - 如果找不到文件,它将返回您提到的日期值,无论出于何种原因:

  

如果path参数中描述的文件不存在,则此方法返回午夜,公元1601年1月1日午夜(CE)协调世界时(UTC),调整为当地时间。

仔细检查您枚举的文件名确实存在......!

HTH,

答案 1 :(得分:0)

正确的程序版本 -

Remarks