Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.12;
Скачать: CL | DM;

Вниз

Как изменить дату создания директории???   Найти похожие ветки 

 
sLMolox ©   (2003-04-12 09:46) [0]

Вроде бы тривиальная задача, но у меня уже второй день ничего не получается. С файлами нет траблов: Функция SetFileTime(HANDLE hFile, FILETIME *, FILETIME *, FILETIME *); все решает. Я себе представляю что директория - это тот же файл, но где взять hFile для него? Гуру посоветовали брать из _findfirst _findnext, но и там я ничего не нашел: в возвращаемых структурах нет хэндла файла!
Помогите плиз, хотелось бы конкретным примером, и желательно апишнами средствами, а не прямым доступом к диску(У меня уже возникали мысли это сделать %) )


 
Song ©   (2003-04-12 09:47) [1]

Для NT ?


 
sLMolox ©   (2003-04-12 12:59) [2]

если есть под нт примеры, то дайте под нт, хотя желательно что нибудь более универсальное....


 
Song ©   (2003-04-12 13:22) [3]

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:\temp\MyFolder", now, now, now);
end;


 
sLMolox ©   (2003-04-13 09:22) [4]

Интересно, а под Вынь9х это что вообще невозможно сделать?



Страницы: 1 вся ветка

Текущий архив: 2003.06.12;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
3-34753
RDA
2003-05-24 13:16
2003.06.12
Отчетный период в бухгалтерских программах


11-34769
Vit@l
2002-09-22 11:09
2003.06.12
У меня че-то глючит или че?


3-34727
kdy
2003-05-20 11:56
2003.06.12
При переходе с D3 на D6 перестал работать PREPARE


14-34989
Skier
2003-05-26 09:48
2003.06.12
Олимпиада 2012 в Москве. За и против.


3-34667
Алексей
2003-05-15 07:41
2003.06.12
Как прочитать информацию из текстового файла