Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.06.12;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.06.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
8-34931
keks11
2003-02-24 03:59
2003.06.12
Обработка видео


3-34746
Maxxx
2003-05-23 11:39
2003.06.12
DBGrid


1-34889
Remis
2003-05-31 16:57
2003.06.12
ListBox


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


14-35038
Soft
2003-05-27 15:58
2003.06.12
Linux не умеет работать с proxy?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский