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

Вниз

И снова о датах...   Найти похожие ветки 

 
antonioxxx ©   (2002-09-29 15:57) [0]

Уважаемые программисты! Подскажите, пожалуйста, почему не работает следующая процедура, изменяющая дату создания файла. Никаких ошибок не возникает, но и дата создания не меняется. Операционка - WinXP:

Procedure SetFileDateEx(FileName:String; fFileDate:TDateTime);
Var
FileAttr: WIN32_FILE_ATTRIBUTE_DATA;
FileSystemTime: TSystemTime;
Begin
if GetFileAttributesEx(PChar(FileName), GetFileExInfoStandard, @FileAttr) then begin
DateTimeToSystemTime(fFileDate,FileSystemTime);
SystemTimeToFileTime(FileSystemTime,FileAttr.ftCreationTime);
fFileDate := SystemTimeToDateTime(FileSystemTime);
end else
MessageBoxEx(0,"Произошла ошибка","Ошибка",MB_IconError,0);
End;


 
Dot ©   (2002-09-29 16:05) [1]

может я ошибаюсь но разве не SetFileAttributes выставляют?


 
antonioxxx ©   (2002-09-29 20:25) [2]

>Dot Где?


 
Dot ©   (2002-09-29 20:48) [3]

где ты меняешь?


 
han_malign   (2002-09-30 14:05) [4]

Стандартными средствами изменить у файла ничего кроме атрибутов нельзя (r/a/h/s).
Поменять время можно только выставив системное время на необходимое и скопировав(переместив)файл (создать его заново, и не забыть вернуть время системы на нормальное).


 
antonioxxx ©   (2002-09-30 23:58) [5]

Минуточку! А как же функция SetFileTime, которая, как гласит справка,"...The SetFileTime function sets the date and time that a file was created, last accessed, or last modified..."
А вот, ксати, и пример процедуры с её использованием. Но вот парадокс - при первом запуске этой процедуры дата поменилась, а больше ни у одного файла этот финт произвести не удалось...

Procedure SetFileDateEx(FileName:String; fFileDate:TDateTime);
Var
F:Cardinal;
FileTime: TFileTime;
SystemTime: TSystemTime;
Begin
If FileExists(FileName) Then
Begin
F:=FileOpen(FileName,GENERIC_WRITE);
DateTimeToSystemTime(fFileDate,SystemTime);
SystemTimeToFileTime(SystemTime,FileTime);
SetFileTime(F,@FileTime,nil,nil);
FileClose(F);
ZeroMemory(@FileTime,SizeOf(@FileTime));
End
Else
MessageBoxEx(0,"Файл по указанному адресу не найден","Ошибка",MB_IconError,0);
End;


 
antonioxxx ©   (2002-10-08 00:20) [6]

Почему эта процедура не работает?



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

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

Наверх




Память: 0.47 MB
Время: 0.012 c
4-28339
stel
2002-10-21 08:16
2002.12.09
Как изменить цвет выделения в RichEdit?


1-28053
Сутковой Вадим
2002-11-27 16:33
2002.12.09
Раскладка клавы.


3-27869
hawk1974
2002-11-21 10:58
2002.12.09
BDE и Oracle 8.1.6.


7-28326
dr.Killer
2002-10-08 09:17
2002.12.09
CD-Rom


4-28356
Бульбаш
2002-10-28 17:42
2002.12.09
Подскажите плиз в каком модуле RXLib находится функция