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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 2.282 c
2-1192733443
No_ise
2007-10-18 22:50
2007.11.11
проблема с цветами


2-1192968712
AlexanderMS
2007-10-21 16:11
2007.11.11
Как узнать, что Word установлен?


15-1191581507
s_t_d
2007-10-05 14:51
2007.11.11
BIOS для MotherBoard VERTEX M1 94V-0


4-1175083353
Darth Avenger
2007-03-28 16:02
2007.11.11
Получить изображение с USB-камеры


3-1183366594
GL00m
2007-07-02 12:56
2007.11.11
Delete в SQLQuery не работает





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