使用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);
答案 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