Всем, добрый день. Необходимо поправить время открытия файлика. Код (Text): hFile= CreateFile( lpNewFileName, FILE_ALL_ACCESS, NULL, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); if(hFile != INVALID_HANDLE_VALUE) { SetFileTime( hFile , &(Win32FindData.ftCreationTime), &(Win32FindData.ftLastAccessTime), &(Win32FindData.ftLastWriteTime) ); CloseHandle( hFile ); } Время создания и последнего доступа правятся. Можно перед созданием откатывать системное время, создавать файл, потом снова выставлять время, но на это нужны права админа. Подскажите, вариант для пользовательской учётки.
DeRekX Imho есть три времени: создания, доступа и записи, соответственно create, access и write. Что означает твое: "время открытия"?
q_q значение ftLastAccessTime удивительно, почему в свойстве файла значения идут не последовательно. (CreationTime LastWriteTime LastAccessTime)
RET Пределал через NtQueryInformationFile и NtSetInformationFileчерез, но время открытия файла всё равно выставляется как от CreateFile(). В прикреплении исходник. Время открытия смотрю в свойстве файла. Может время открытия файла вообще нельзя изменять? Может проблема с NTFS ?
DeRekX Изменять можно, только похоже это "вещь в себе", т.к.при любом обращении к файлу в т.ч. и по FindFirst\NextFile это время изменяется на текущее. И соотв-но эксплорер в св-вах файла всегда показывает "Открыт" = текущее время
leo не всегда, на любом системном файле поверь. В msdn написано "SetFileTime() Sets the date and time that the specified file or directory was created, last accessed, or last modified." Получается про "last accessed" врут. Или тороплюсь свойcтва смотреть: "NTFS delays updates to the last access time for a file by up to one hour after the last access."