fgsav
Messages postés16Date d'inscriptionmardi 20 décembre 2005StatutMembreDernière intervention22 octobre 2008
-
17 juil. 2007 à 02:04
cincap
Messages postés460Date d'inscriptiondimanche 5 décembre 2004StatutMembreDernière intervention 6 avril 2009
-
17 juil. 2007 à 09:42
Bonjour et merci de lire ma question :)
Je fais mumuse avec les fichiers, j'en récupère les attributs et les modifie...
Ce que je voudrais maintenant c'est modifier les dates de dernier accès, de création, et de modification.
Je les récupère grace à cette fonction:
Merci d'avance !
<hr />
function TForm1.GetFileTimes(const FileName: string; var Created: TDateTime; var Accessed: TDateTime; var Modified: TDateTime): Boolean;
var
h: THandle;
Info1, Info2, Info3: TFileTime;
SysTimeStruct: SYSTEMTIME;
TimeZoneInfo: TTimeZoneInformation;
Bias: Double;
begin
Result := False;
Bias := 0;
h := FileOpen(FileName, fmOpenRead or fmShareDenyNone);
if h > 0 then
begin
try
if GetTimeZoneInformation(TimeZoneInfo) <> $FFFFFFFF then
Bias := TimeZoneInfo.Bias / 1440; // 60x24
GetFileTime(h, @Info1, @Info2, @Info3);
if FileTimeToSystemTime(Info1, SysTimeStruct) then
Created := SystemTimeToDateTime(SysTimeStruct) - Bias;
if FileTimeToSystemTime(Info2, SysTimeStruct) then
Accessed := SystemTimeToDateTime(SysTimeStruct) - Bias;
if FileTimeToSystemTime(Info3, SysTimeStruct) then
Modified := SystemTimeToDateTime(SysTimeStruct) - Bias;
Result := True;
finally
FileClose(h);
end;
end;
end;
cincap
Messages postés460Date d'inscriptiondimanche 5 décembre 2004StatutMembreDernière intervention 6 avril 20092 17 juil. 2007 à 09:42
Bonjour à toutes et à tous,
@ fdsav, j'utilisais les fonctions suivantes :
function SetFileDateTime(FileName: string; NewDateTime: TDateTime): Boolean;
var
FileHandle: Integer;
FileTime: TFileTime;
LFT: TFileTime;
LST: TSystemTime;
begin
Result := False;
try
DecodeDate(NewDateTime, LST.wYear, LST.wMonth, LST.wDay);
DecodeTime(NewDateTime, LST.wHour, LST.wMinute,
LST.wSecond, LST.wMilliSeconds);
if SystemTimeToFileTime(LST, LFT) then
begin
if LocalFileTimeToFileTime(LFT, FileTime) then
begin
FileHandle := FileOpen(FileName, fmOpenReadWrite or
fmShareExclusive);
if SetFileTime(FileHandle, @FileTime, nil, nil) then
Result := True;
end;
end;
finally
FileClose(FileHandle);
end;
end;
function FileTimeToDateTime(FileTime: TFileTime): TDateTime;
{=================================================================}
{ fonction permettant de convertir des date de type FileTime }
{ en Date de type DateTime }
{=================================================================}
var
LocalFileTime: TFileTime;
SystemTime: TSystemTime;
begin
FileTimeToLocalFileTime(FileTime, LocalFileTime);
FileTimeToSystemTime(LocalFileTime, SystemTime);
Result := SystemTimeToDateTime(SystemTime);
end;
function DateHeureCreationFichier1(fichier: string): TDateTime;
{=================================================================}
{ fonction renvoyant la date et heure de la création du fichier }
{=================================================================}
var SearchRec:TSearchRec;
Resultat:longint;
begin
Result:=0;
Resultat:=FindFirst(fichier, FaAnyFile, SearchRec);
if Resultat=0 then Result:=FileDateToDateTime(SearchRec.Time); // FileDateToDateTime transforme une date de type dos en format TDateTime
FindClose(SearchRec);
end;
function TimeAccesFichier(fichier: string): TDateTime;
{=================================================================}
{ fonction renvoyant la date et heure du dernier accés au fichier }
{ l'heure ne semble pas marcher au moins en Win 98 }
{=================================================================}
var SearchRec:TSearchRec;
Resultat:LongInt;
begin
//Result:=0;
Resultat:=FindFirst(fichier, FaAnyFile, SearchRec);
if Resultat=0 then Result:=FileTimeToDateTime(SearchRec.FindData.ftLastAccessTime) ; // FileDateToDateTime transforme une date de type dos en format TDateTime
FindClose(SearchRec);
end;
function TimeModificationFichier(fichier: string): TDateTime;
{===========================================================================}
{ fonction renvoyant la date et heure de la dernière modification du fichier}
{===========================================================================}
var SearchRec:TSearchRec;
Resultat:longint;
begin
Result:=0;
Resultat:=FindFirst(fichier, FaAnyFile, SearchRec);
if Resultat=0 then Result:=FileDateToDateTime(SearchRec.Time); // FileDateToDateTime transforme une date de type dos en format TDateTime
FindClose(SearchRec);
end;
function TimeCreationFichier(fichier: string): TDateTime;
{=================================================================}
{ fonction renvoyant la date et heure de la création du fichier }
{=================================================================}
var SearchRec:TSearchRec;
Resultat:LongInt;
begin
Result:=0;
Resultat:=FindFirst(fichier, FaAnyFile, SearchRec);
if Resultat=0 then Result:=FileTimeToDateTime(SearchRec.FindData.ftCreationTime) ; // FileDateToDateTime transforme une date de type dos en format TDateTime
FindClose(SearchRec);
end;
function DateHeureModificationFichier2(fichier: string): TDateTime;
{seconde solution pour trouver la date et l'heure de dernière modification d'un fichier}
{fonction renvoyant la date et l'heure de création du fichier sous la forme d'un TDateTime}
begin
Result:=FileDateToDateTime(FileAge(fichier)); // FileDateToDateTime transforme une date de type dos en format TDateTime
end;
N. B.
// pour convertir un TDateTime en date et heure, utilisez DecodeTime
// (unit SysUtils) : DecodeTime scinde TDateTime en heures, minutes, secondes et millisecondes.
// procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);
// ou DecodeDate qui scinde TDateTime en valeurs Année, Mois et Jour.
// procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word);
// Voir aussi DateToStr ou TimeToStr
Dans le projet, tu utilises 2 Tbuttons, 4 Tlabel, 4 TDateTimePicker et 1 TopenDialog.