为什么我新建的文件获得的时间不对?
我通过DeleteFile删除某文件夹中指定的文件,然后通过FileCreate又在这个文件夹中建一个与刚才删除文件同名的文件,并且获得该文件建立时间,函数如下:
TDateTime NewFile(AnsiString fName)
{
AnsiString absoluteName = ExtractFilePath(ParamStr(0)) + "data\\ " + fName + ".dat ";
int handle = FileCreate(absoluteName);
InitR(fName);
FileWrite(handle, &(*this), sizeof(*this));
FileClose(handle);
TSearchRec sr;
FILETIME ftTime;
SYSTEMTIME stTime;
TDateTime dtTime;
FindFirst(absoluteName, faAnyFile, sr);
FileTimeToLocalFileTime(&sr.FindData.ftCreationTime, &ftTime);
FileTimeToSystemTime(&ftTime, &stTime);
dtTime = SystemTimeToDateTime(stTime);
FindClose(sr);
return dtTime;
}
结果函数返回的时间却是我删除的文件建立的时间???
如果我删除文件后重新运行下程序,然后再建立同名文件,时间就是对的???
怎么解决这个问题呢?请教高手!
[解决办法]
DeleteFile设个断点, 在资源管理器中看看文件是否删除了
[解决办法]
应该需要一些时间,但不会很长!
[解决办法]
一个办法你在中间加上延时
或者直接更改文件名后删除,应该不会出现那个问题