Форум: "KOL";
Текущий архив: 2003.10.09;
Скачать: [xml.tar.bz2];
Внизопределение измененных файлов Найти похожие ветки
← →
virus_gvd (2003-01-26 02:30) [0]Как можно из Делфы определить :
- дату создание файла(время)
- дату изменения файла(время)
- дату открытия файла
← →
mdw (2003-01-27 10:32) [1]
GetFileTime
← →
blackalex (2003-01-27 10:49) [2]Из моего архива. Для last acces file time можешь по образцу сам дописать. Мне оно никогда не нужно было , поэтому отсутствует
// if ID = 0 return value is create file time
// if ID = 1 return value is last write file time
function GetFileSystemTime (ID : Integer; FileName: AnsiString): TSystemTime;
var
SearchRec : TSearchRec;
Success : Integer;
DT : TFileTime;
begin
Result := GetDefaultFileSystemTime;
Success := FindFirst(FileName,faAnyFile,SearchRec);
//get create file time : ID = 0
//------------------------------------------------------------------
if (Success = 0) and (ID = 0 ) and
(( SearchRec.FindData.ftCreationTime.dwLowDateTime <> 0)
or ( SearchRec.FindData.ftCreationTime.dwHighDateTime <> 0))
then
begin
FileTimeToLocalFileTime(SearchRec.FindData.ftCreationTime,DT);
FileTimeToSystemTime(DT,Result);
end;
//get last write file time ID = 1
//------------------------------------------------------------------
if (Success = 0) and (ID = 1 ) and
(( SearchRec.FindData.ftLastWriteTime.dwLowDateTime <> 0)
or ( SearchRec.FindData.ftLastWriteTime.dwHighDateTime <> 0))
then
begin
FileTimeToLocalFileTime(SearchRec.FindData.ftLastWriteTime,DT);
FileTimeToSystemTime(DT,Result);
end;
//------------------------------------------------------------------
FindClose(SearchRec);
end;
function GetDefaultFileSystemTime: TSystemTime;
begin
with Result do
begin
wYear := 1970;
wMonth := 1;
wDayOfWeek := 1;
wDay := 1;
wHour := 0;
wMinute := 0;
wSecond := 0;
wMilliseconds := 0;
end;
end;
← →
Kladov (2003-01-27 17:24) [3]Нормальные герои всегда идут в обход ;-)
В Windows.pas определена функция:
function GetFileTime(hFile: THandle;
lpCreationTime, lpLastAccessTime, lpLastWriteTime: PFileTime): BOOL; stdcall;
После чего если надо преобразовать в TSystemTime, используем
FileTimeToSystemTime или FileTimeToLocalTime,
если надо дальше в TDateTime, то SystemTimeToDateTime (в KOL - SystemTime2DateTime).
← →
Kladov (2003-01-27 21:40) [4]Прошу простить. Этот метод совсем не годится, если нужен LastAccessTime. Мнда. Вот. Тогда лучше так, как сверху. Только лучше использовать FindFirstFile / FindNextFile / FindClose из Windows.pas а не FindFirst / FindNext / FindClose из sysutils. И немного странно мне показалось получение GetDefaultFileSystemTime. 0 вернуть в Result, и все дела. В VCL будет 31.12.1989, в KOL 01.01.0001.
← →
blackalex (2003-01-28 11:27) [5]И немного странно мне показалось получение GetDefaultFileSystemTime. 0 вернуть в Result, и все дела. В VCL будет 31.12.1989, в KOL 01.01.0001.
Да мне просто в моей проге надо было , чтобы в случае ошибки отсчет начинался с 1970-го года. Вот я и перекопировал сюда всё как было. Да и фукции этой сто лет уже. А вот про GetFileTime я и не знал. Спасибо.
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2003.10.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c