Как узнать время переименования файла - PullRequest
3 голосов
/ 07 июня 2011

В последний раз я задавал вопрос, касающийся получения списка файлов, измененных после определенного времени

Как я могу получить файлы, измененные в каталоге за определенный период времени, используя 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 Ответ

1 голос
/ 07 июня 2011

Из файлов раз MSDN статья:

Система записывает время файлов, когда приложения создают, получают доступ и записывают в файлы.

Время переименования не записывается. Вы не можете получить эту информацию. Вы можете получить некоторое представление о том, был ли файл переименован, просмотрев информацию о времени в каталоге, но это не скажет вам, какой файл был переименован.

Если вы объяснили свою цель более подробно, возможно, кто-то найдет альтернативное решение, но то, что вы спрашиваете, не представляется возможным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...