Как я могу использовать C, чтобы изменить дату последнего изменения файла в Windows? - PullRequest
1 голос
/ 11 ноября 2008

Есть ли вызов функции C, который может изменить дату последнего изменения файла или каталога в Windows?

Ответы [ 3 ]

5 голосов
/ 11 ноября 2008

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

hFolder = CreateFile(path, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_DIRECTORY | FILE_FLAG_BACKUP_SEMANTICS, NULL);
2 голосов
/ 11 ноября 2008

Использовать SetFileTime:

BOOL WINAPI SetFileTime(
  __in      HANDLE hFile,
  __in_opt  const FILETIME *lpCreationTime,
  __in_opt  const FILETIME *lpLastAccessTime,
  __in_opt  const FILETIME *lpLastWriteTime
);

Это в winbase.h, так что вам просто нужно включить windows.h

РЕДАКТИРОВАТЬ: я вставил неправильную функцию.

1 голос
/ 11 ноября 2008

Да. Вы можете использовать API-функцию SetFileTime .

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