Изменение даты создания каталога
Автор: Dimka Maslov
WEB-сайт: http://delphibase.endimus.com
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Изменение даты создания каталога
Две перегруженные функции, изменяющие дату и время создания каталога.
Первая принимает непосредственные значения года, месяца, дня, часа,
минут и секунд. Во второй дата и время указываются в формате TDateTime.
См. также: http://delphibase.endimus.com/?action=viewfunc&topic=fileattr&id=10496
Зависимости: Windows
Автор: Dimka Maslov, mainbox@endimus.com, ICQ:148442121, Санкт-Петербург
Copyright: Dimka Maslov
Дата: 4 февраля 2004 г.
***************************************************** }
function SetDirTime(const Dir: string; Year, Month, Day, Hour, Minute, Second:
Word): Boolean; overload;
var
H: Integer;
F: TFileTime;
S: TSystemTime;
begin
H := CreateFile(PChar(Dir), $0100, 0, nil, OPEN_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS, 0);
if H <> -1 then
begin
S.wYear := Year;
S.wMonth := Month;
S.wDay := Day;
S.wHour := Hour;
S.wMinute := Minute;
S.wSecond := Second;
SystemTimeToFileTime(S, F);
LocalFileTimeToFileTime(F, F);
Result := Boolean(SetFileTime(H, @F, @F, @F));
CloseHandle(H);
end
else
Result := False;
end;
function SetDirTime(const Dir: string; DateTime: TDateTime): Boolean; overload;
var
H: Integer;
F: TFileTime;
S: TSystemTime;
begin
H := CreateFile(PChar(Dir), $0100, 0, nil, OPEN_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS, 0);
if H <> -1 then
begin
DateTimeToSystemTime(DateTime, S);
SystemTimeToFileTime(S, F);
LocalFileTimeToFileTime(F, F);
Result := Boolean(SetFileTime(H, @F, @F, @F));
CloseHandle(H);
end
else
Result := False;
end;
Пример использования:
if not SetDirTime('c:\Program Files', 2004, 2, 4, 12, 0, 0) then
ShowMessage('Error!');
|