Главная страница
    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.012 c
1-34825
Endi
2003-06-02 22:41
2003.06.12
Смена строкового типа


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


3-34679
Snv-Soft
2003-05-22 07:27
2003.06.12
Как запросом получить интервалы ИД таблицы?


1-34834
HardClubber
2003-06-02 01:22
2003.06.12
Перемещение формы


3-34673
kir_kul
2003-05-22 13:00
2003.06.12
Как найти различия в двух таблицах.





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