![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как поменять дату файла? [D7]
Ega23 © (2007-10-16 12:02:00)Недавно проскакивало, но что-то не нашёл...
Ткните носом в хелп, плиз...
Ins (2007-10-16 15:59:00) [1]
> Инс, чего не исправил?
Даже с этой строчкой?
SetFileTime(Handle,nil,-1,nil);
Если все равно не работает, то и фиг с ним. Мне оно не надо? :)
Denis__ (2007-10-16 15:55:00) [2]
function SetFileLastAccessDateTime(FileName: TFileName; Date: TDateTime): Boolean;
Не работает :) Инс, чего не исправил?
Ins (2007-10-16 12:10:00) [3]
> Это самописное?
Самописное
Ins (2007-10-16 12:09:00) [4]
> Так, новая вводная.
Огласите весь список
Ega23 (2007-10-16 12:09:00) [5]
> Ins © (16.10.07 12:08) [3]
Это самописное?
Ega23 (2007-10-16 12:08:00) [6]Так, новая вводная. SetFileTime я уже нашёл.
Речь о командной строке, т.е. из cmd-shell
Желательно средствами самого shell, без JScript или VBScript
Ins (2007-10-16 12:08:00) [7]Попробуйте это.
unit ExFiles;
interface
uses Windows, SysUtils;
function GetFileCreationDateTime(FileName: TFileName; var Date: TDateTime): Boolean;
function GetFileLastAccessDateTime(FileName: TFileName; var Date: TDateTime): Boolean;
function GetFileLastWriteDateTime(FileName: TFileName; var Date: TDateTime): Boolean;
function SetFileCreationDateTime(FileName: TFileName; Date: TDateTime): Boolean;
function SetFileLastAccessDateTime(FileName: TFileName; Date: TDateTime): Boolean;
function SetFileLastWriteDateTime(FileName: TFileName; Date: TDateTime): Boolean;
implementation
function DateTimeToFileTime(Date: TDateTime): TFileTime;
var
LocalFileTime: TFileTime;
DosTime: Integer;
begin
DosTime:=DateTimeToFileDate(Date);
DosDateTimeToFileTime(LongRec(DosTime).Hi,LongRec(DosTime).Lo,LocalFileTime);
LocalFileTimeToFileTime(LocalFileTime,Result);
end;
function FileTimeToDateTime(FileTime: TFileTime): TDateTime;
var
LocalFileTime: TFileTime;
DosTime: Integer;
begin
FileTimeToLocalFileTime(FileTime,LocalFileTime);
FileTimeToDosDateTime(LocalFileTime,LongRec(DosTime).Hi,LongRec(DosTime).Lo);
Result:=FileDateToDateTime(DosTime);
end;
function GetFileCreationDateTime(FileName: TFileName; var Date: TDateTime): Boolean;
var
Handle: HFile;
FileTime: TFileTime;
begin
Result:=false;
Handle:=HFile(FileOpen(FileName,fmOpenRead));
try
if Handle<>INVALID_HANDLE_VALUE then begin
if GetFileTime(Handle,@FileTime,nil,nil) then begin
Date:=FileTimeToDateTime(FileTime);
Result:=true;
end;
end;
finally
FileClose(Handle);
end;
end;
function GetFileLastAccessDateTime(FileName: TFileName; var Date: TDateTime): Boolean;
var
Handle: HFile;
FileTime: TFileTime;
begin
Result:=false;
Handle:=HFile(FileOpen(FileName,fmOpenRead));
try
if Handle<>INVALID_HANDLE_VALUE then begin
if GetFileTime(Handle,nil,@FileTime,nil) then begin
Date:=FileTimeToDateTime(FileTime);
Result:=true;
end;
end;
finally
FileClose(Handle);
end;
end;
function GetFileLastWriteDateTime(FileName: TFileName; var Date: TDateTime): Boolean;
var
Handle: HFile;
FileTime: TFileTime;
begin
Result:=false;
Handle:=HFile(FileOpen(FileName,fmOpenRead));
try
if Handle<>INVALID_HANDLE_VALUE then begin
if GetFileTime(Handle,nil,nil,@FileTime) then begin
Date:=FileTimeToDateTime(FileTime);
Result:=true;
end;
end;
finally
FileClose(Handle);
end;
end;
function SetFileCreationDateTime(FileName: TFileName; Date: TDateTime): Boolean;
var
Handle: HFile;
FileTime: TFileTime;
begin
Result:=false;
Handle:=HFile(FileOpen(FileName,fmOpenWrite));
try
if Handle<>INVALID_HANDLE_VALUE then begin
FileTime:=DateTimeToFileTime(Date);
Result:=SetFileTime(Handle,@FileTime,nil,nil);
end;
finally
FileClose(Handle);
end;
end;
function SetFileLastAccessDateTime(FileName: TFileName; Date: TDateTime): Boolean;
var
Handle: HFile;
FileTime: TFileTime;
begin
Result:=false;
Handle:=HFile(FileOpen(FileName,fmOpenWrite));
try
if Handle<>INVALID_HANDLE_VALUE then begin
FileTime:=DateTimeToFileTime(Date);
Result:=SetFileTime(Handle,nil,@FileTime,nil);
SetFileTime(Handle,nil,-1,nil);
end;
finally
FileClose(Handle);
end;
end;
function SetFileLastWriteDateTime(FileName: TFileName; Date: TDateTime): Boolean;
var
Handle: HFile;
FileTime: TFileTime;
begin
Result:=false;
Handle:=HFile(FileOpen(FileName,fmOpenWrite));
try
if Handle<>INVALID_HANDLE_VALUE then begin
FileTime:=DateTimeToFileTime(Date);
Result:=SetFileTime(Handle,nil,nil,@FileTime);
end;
finally
FileClose(Handle);
end;
end;
end.
Ega23 (2007-10-16 12:08:00) [8]
> function FileSetDate(const FileName: string; Age: Integer):
> Integer; overload;
Спасибо, возьму на заметку.
Правильный Вася (2007-10-16 12:06:00) [9]function FileSetDate(const FileName: string; Age: Integer): Integer; overload;