Delphirus - прграммирование на delphi
   Все о delphi Delphirus - прграммирование на delphi
blocks.gif
Навигация
 

Главная
Статьи
Базы данных
Графика
Защита
Интернет
Система
Тексты
Мультимедиа
Файлы
Формы и окна
Другое
Советы
Базы данных
Графика
Интернет
Мультимедиа
Система
Тексты
Файлы
Файлы
Исходники
Компоненты
Инфо
Поиск по сайту
Обратная связь
Самое популярное
Аккаунт
Карта сайта

 
 
 

Советы по delphi \ Файловая система \ Каталоги \ Получить или установить дату для директории

Получить или установить дату для директории

function GetFolderDate(Folder: string): TDateTime;
 var
   Rec: TSearchRec;
   Found: Integer;
   Date: TDateTime;
 begin
   if Folder[Length(folder)] = '' then
     Delete(Folder, Length(folder), 1);
   Result := 0;
   Found  := FindFirst(Folder, faDirectory, Rec);
   try
     if Found = 0 then
     begin
       Date   := FileDateToDateTime(Rec.Time);
       Result := Date;
     end;
   finally
     FindClose(Rec);
   end;
 end;

 procedure TForm1.Button1Click(Sender: TObject);
 var
   d: TDateTime;
 begin
   d := GetFolderDate('C:WINNT');
   ShowMessage(FormatDateTime('dddd, d. mmmm yyyy, hh:mm:ss', d));
 end;


 { Sets the time for both files and directories }
 { for NT }

 function NT_SetDateTime(FileName: string; dtCreation, dtLastAccessTime, dtLastWriteTime: TDateTime): Boolean;
 // by Nicholas Robinson 
var
   hDir: THandle;
   ftCreation: TFiletime;
   ftLastAccessTime: TFiletime;
   ftLastWriteTime: TFiletime;

   function DTtoFT(dt: TDateTime): TFiletime;
   var
     dwft: DWORD;
     ft: TFiletime;
   begin
     dwft := DateTimeToFileDate(dt);
     DosDateTimeToFileTime(LongRec(dwft).Hi, LongRec(dwft).Lo, ft);
     LocalFileTimeToFileTime(ft, Result);
   end;

 begin
   hDir := CreateFile(PChar(FileName),
                      GENERIC_READ or GENERIC_WRITE,
                      0,
                      nil,
                      OPEN_EXISTING,
                      FILE_FLAG_BACKUP_SEMANTICS,
                      0);
   if hDir <> INVALID_HANDLE_VALUE then
    begin
     try
       ftCreation       := DTtoFT(dtCreation);
       ftLastAccessTime := DTtoFT(dtLastAccessTime);
       ftLastWriteTime  := DTtoFT(dtLastWriteTime);
       Result := SetFileTime(hDir, @ftCreation, @ftLastAccessTime, @ftLastWriteTime);
     finally
       CloseHandle(hDir);
     end;
   end
   else
     Result := False;
 end;

 procedure TForm1.Button2Click(Sender: TObject);
 begin
   NT_SetDateTime('c:	empMyFolder', now, now, now);
 end;

Название: Получить или установить дату для директории
Дата публикации: 2004-06-13 (2732 Прочтено)

 
 

 

Page generation 0.035 seconds