Здрасте! Есть ре-файл, записываю в него несколько байт. Затем узнаю функцией GetFileTime время последней модификации - она не изменена. Почему? Может, в реестре что-то отключено? У меня Windows XP SP2, FAT32. Пишу на С++.
Запись через CreateFile/CreateFileMapping/MapViewOfFile/UnmapViewOfFile. Пример получения времени: Код (Text): ... HANDLE hFile=CreateFile(...,GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE,0,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0); if(hFile==INVALID_HANDLE_VALUE) { cout<<"hFile ERROR!"<<endl; return 0; } FILETIME at,ct,wt; SYSTEMTIME st={sizeof(0)}; GetFileTime(hFile,&at,&ct,&wt); FileTimeToSystemTime(&at,&st); ... И потом смотрю уже через st.wMinute, etc.
_faq_ точно производится запись в файл? загрузи в отладчик и посмотри, что выполняется и возвращается.
_faq_ А ты то время смотришь ? Время последнего изменения это wt, а ты судя по коду смотришь время создания, которое при модификации файла не изменяется
NtQueryDirectoryFile(FileDirectoryInformation), NtQueryInformationFile(FileBasicInformation). RtlTimeToTimeFields().
leo Тю, перепутал. На самом деле - подставляю wt. Запись в файл производится - тут все отлично. CrystalIC мне бы для начала разобраться с помощью этих апишек.
Данно... А дата последней записи сразу должна обновляться после UnmapViewOfFile, или нужно, чтобы все хэндлы файла закрылись?