如何获取文件重命名的时间

时间:2011-06-07 11:33:31

标签: visual-c++

上次我询问有关检索特定时间后修改的文件列表的问题

How can I get the files modified in a directory in a particular period of time using c++?

我尝试了以下代码

CFileFind finder;
szFile = _T("C:\\MyFolder\\*.*");
BOOL bFound = finder.FindFile( szFile );
CTime fileTime;
CTime fileCreateTime;
while ( bFound )
{
bFound = finder.FindNextFile();
    finder.GetLastWriteTime(fileTime);
    finder.GetCreationTime(fileCreateTime);
    szFile = finder.GetFilePath();
    if((startTime < fileTime) || (startTime < fileCreateTime))
        {
           ............

可以使用上面的代码检索修改过的文件的详细信息。 但我无法获得重命名文件的详细信息。

如果我重命名该文件夹中的文件,其创建和修改时间与旧文件相同。 只有访问的时间才会改变。

但即使文件被打开且未被修改,访问时间也会发生变化。

因此,通过检索访问时间,我没有得到相关的详细信息..

任何人请帮忙,我如何识别重命名的文件......

1 个答案:

答案 0 :(得分:1)

来自File times MSDN文章:

  

当应用程序创建,访问和写入文件时,系统会记录文件时间。

不记录重命名时间。你无法获得这些信息。您可以通过查看目录时间信息来了解文件是否已重命名,但这不会告诉您哪个文件已重命名。

如果你用更详细的方式解释了你的目标,也许有人可以找到另一种解决方案,但就像你要问的那样听起来不太可能。