首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

为什么小弟我新建的文件获得的时间不对

2012-02-07 
为什么我新建的文件获得的时间不对?我通过DeleteFile删除某文件夹中指定的文件,然后通过FileCreate又在这

为什么我新建的文件获得的时间不对?
我通过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设个断点, 在资源管理器中看看文件是否删除了
[解决办法]
应该需要一些时间,但不会很长!
[解决办法]
一个办法你在中间加上延时
或者直接更改文件名后删除,应该不会出现那个问题

热点排行