Я хочу извлечь Дата значение для конкретного файла и сравнить его с датой изменения и датой создания в Visual C ++.
Я видел, что я могу извлечь Дата создания а также Дата изменена, но я ничего не знаю о Дата.
Я изменил некоторые файлы с ошибкой программного обеспечения, и единственный столбец, который все еще имеет правильное время, является Дата один. Как я могу извлечь это?
Я использую Windows 7 x64.
Здесь я видел только st_atime, st_ctime, st_mtime:
http://msdn.microsoft.com/en-us/library/14h5k7ff.aspx
Windows хранит три метки времени для каждого файла или папки:
Есть несколько способов прочитать эти временные метки, но с помощью собственного API Win32 вы можете сделать следующее:
LPCWSTR pszFileName = L"c:\\path\\to\\myfile.txt";
WIN32_FIND_DATA wfd;
HANDLE hFind = FindFirstFile(pszFileName, &wfd);
if (hFind != INVALID_HANDLE_VALUE)
{
FindClose(hFind);
// timestamps can now be found at:
// wfd.ftCreationTime
// wfd.ftLastAccessTime
// wfd.ftLastWriteTime
}
Вы можете использовать такие функции, как FileTimeToSystemTime()
преобразовать FILETIME
значения (которые являются просто числом тиков с определенной даты) в более удобные для использования SYSTEMTIME
структуры, которые дают вам день, месяц, год, час, минуту и т. д.
Примечание. «Время последнего изменения» также обновляется для папок и файлов и указывает, когда в последний раз файл был изменен непосредственно внутри этой папки. Изменения временных меток папок не распространяются на родительские папки.
Примечание 2: «Время последнего доступа» более или менее устарело и по умолчанию отключено в новых версиях Windows. Вы можете включить его, используя настройки реестра.
Других решений пока нет …