Форум: "WinAPI";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
ВнизКак определить время создания файла и директории? Найти похожие ветки
← →
Buster © (2004-06-28 13:11) [0]Необходимо написать функцию, которая будет определять время создания директории или файла.
function DirFileDateTime(name_file_dir : String; mode : Integer) : TDateTime;
var
file_attr : WIN32_FILE_ATTRIBUTE_DATA;
dtDOS : LongRec;
begin
GetFileAttributesEx(PChar name_file_dir),GetFileExInfoStandard,@file_attr);
case mode of
cCreateDateTime : FileTimeToDosDateTime(file_attr.ftCreationTime,dtDOS.Hi ,dtDOS.Lo);
cLastWriteDateTime : FileTimeToDosDateTime(file_attr.ftLastWriteTime,dtDOS.Hi,dtDOS.Lo);
cLastAccessDateTime : FileTimeToDosDateTime(file_attr.ftLastAccessTime,dtDOS.Hi,dtDOS.Lo);
end;
Result:=FileDateToDateTime(Integer(dtDOS));
end;
Вот что написал я, но возвращаемое время не соответствует действительности, а иногда возникает ошибка типа EConvertError.
Помогите пожалуйста.
← →
CHES © (2004-06-28 14:14) [1]Переделай ее так
function DirFileDateTime(name_file_dir : String; mode : Integer) : TDateTime;
var
file_attr : WIN32_FIND_DATA;
dtDOS : LongRec;
begin
if FindFirstFile(PChar(name_file_dir),file_attr)<> INVALID_HANDLE_VALUE then
begin
case mode of
cCreateDateTime : FileTimeToDosDateTime(file_attr.ftCreationTime,dtDOS.Hi ,dtDOS.Lo);
cLastWriteDateTime : FileTimeToDosDateTime(file_attr.ftLastWriteTime,dtDOS.Hi,dtDOS.Lo);
cLastAccessDateTime : FileTimeToDosDateTime(file_attr.ftLastAccessTime,dtDOS.Hi,dtDOS.Lo);
end;
Result:=FileDateToDateTime(Integer(dtDOS));
end;
end;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.041 c