Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.009 c
1-27555
Johnnie
2003-09-29 15:44
2003.10.09
Как сделать, чтобы событие обрабатывал отдельный поток?


3-27308
P0tia
2003-09-17 15:57
2003.10.09
Как сделать?


3-27342
Vitaly
2003-09-19 19:57
2003.10.09
GIF


3-27375
rosl
2003-09-19 03:32
2003.10.09
прием записей


14-27736
Fenik
2003-09-21 21:07
2003.10.09
Энергия пирамид





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский