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

Вниз

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

 
Ega23 ©   (2007-10-16 12:02) [0]

Недавно проскакивало, но что-то не нашёл...
Ткните носом в хелп, плиз...


 
Правильный Вася   (2007-10-16 12:06) [1]

function FileSetDate(const FileName: string; Age: Integer): Integer; overload;


 
Ega23 ©   (2007-10-16 12:08) [2]

Так, новая вводная. SetFileTime я уже нашёл.
Речь о командной строке, т.е. из cmd-shell
Желательно средствами самого shell, без JScript или VBScript


 
Ins ©   (2007-10-16 12:08) [3]

Попробуйте это.

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) [4]


> function FileSetDate(const FileName: string; Age: Integer):
>  Integer; overload;


Спасибо, возьму на заметку.


 
Ins ©   (2007-10-16 12:09) [5]


> Так, новая вводная.

Огласите весь список


 
Ega23 ©   (2007-10-16 12:09) [6]


> Ins ©   (16.10.07 12:08) [3]


Это самописное?


 
Ins ©   (2007-10-16 12:10) [7]


> Это самописное?

Самописное


 
Denis__ ©   (2007-10-16 15:55) [8]

function SetFileLastAccessDateTime(FileName: TFileName; Date: TDateTime): Boolean;
Не работает :) Инс, чего не исправил?


 
Ins ©   (2007-10-16 15:59) [9]


> Инс, чего не исправил?

Даже с этой строчкой?
SetFileTime(Handle,nil,-1,nil);

Если все равно не работает, то и фиг с ним. Мне оно не надо? :)



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

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

Наверх




Память: 0.49 MB
Время: 0.015 c
15-1192007594
Vlad Oshin
2007-10-10 13:13
2007.11.11
Не подключается программа к БД. MSSQLserver2005


15-1191959183
Bogdan1024
2007-10-09 23:46
2007.11.11
суперсистема синхронизации паролей


2-1192347654
Vasiliy
2007-10-14 11:40
2007.11.11
InterBase. Попытка соединения с локальной БД в режиме Run-Time


15-1191791670
malyar
2007-10-08 01:14
2007.11.11
как нарисовать линию зная ее угол наклона и длинну


8-1169127491
namor
2007-01-18 16:38
2007.11.11
Музыка в Делфи