- Delphiartiklar, tips, forum, länksamling - 

      

START | DELPHI | LÄNKARGÄSTBOK 




 Forum

Grundkurs
  »Introduktion
  »Snabbguide
  »Komponenter
  »Händelser
  »Strängar
  »Räkna med Delphi   »Egna typer
  »Selektion
  »Iteration
  »Menyer
  »Funktioner
  »Arraystrukturer

Tips & Tricks
  »Nya tips
  »Blandat
  »Databaser
  »Filer
  »Forms
  »Grafik
  »Internet
  »Komponenter
  »Matematik
  »Multimedia
  »Objekt/ActiveX
  »Skrivare
  »Strängar
  »System
  »Mest lästa tips

Artiklar
  »Delphi och ADO
  »Bygga en DLL
  »Skapa en enkel rapport
  »Hantera registret
  »Enheter, units
  »Klassen TCanvas
  »Använd LookUp Controls

 Nya tips
 Lägg till tips
 Delphilänkar
 Gästbok

 

Funktioner för att returnera och sätta timestamp på filer Kategori: Filer
Inlagt: 2005-01-08
Läst: 1338
Inlagt av: Staffan Berg
Beskrivning
Den första funktionen returnerar datum och tid för en fil då den senast sparades. Den andra funktionen skapar ett motsvarande timestamp. 
Kod
function GetFileDateTimeModified(const FileName: string ; 
                    var yyyy,mm,dd,h,m,s: word): 
boolean; 
var 
 dt,tm: word; 
 DateTime: integer; 
begin 
 result := false; 
 
 DateTime := FileAge(FileName); 
 if DateTime = -1 then exit else result := true; 
 
 tm := DateTime and $FFFF; //lower word 
 dt := DateTime shr 16; //upper word 
 
 h := tm shr 11; 
 m := (tm shr 5) and $3F; 
 s := (tm and $1F) * 2; 
 
 dd := dt and $1F; 
 mm := (dt shr 5) and $F; 
 yyyy := (dt shr 9)+1980; 
 
end; 
 
function SetFileDateTime(const FileName: string ; 
                    var yyyy,mm,dd,h,m,s: word): 
boolean; 
//sets Created, Modified & LastAccessed file date/times 
var 
 SrchHdl: THandle; 
 FileHdl: HFile; 
 FindData: TWin32FindData; 
 wDate,wTime: word; 
 LocalFileTime, NewFileTime: TFileTime; 
begin 
 result := false; 
 SrchHdl := FindFirstFile(PChar(FileName), FindData); 
 if SrchHdl <> INVALID_HANDLE_VALUE then begin 
  Windows.FindClose(SrchHdl); 
  //if not a directory then ... 
  if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then 
begin 
   wTime := (h shl 11) + (m shl 5) + (m div 2); 
   wDate := (dd) + (mm shl 5)+ ((yyyy-1980) shl 9); 
 
   DosDateTimeToFileTime(wDate,wTime,LocalFileTime); 
   LocalFileTimeToFileTime(LocalFileTime, NewFileTime); 
   FileHdl := _lopen(PChar(FileName), OF_WRITE); 
   if FileHdl <> HFILE_ERROR then begin 
    if SetFileTime(FileHdl,@NewFileTime,@NewFileTime,@NewFileTime) then 
      result := true; 
    _lclose(FileHdl); 
   end; 
  end; 
 end; 
end; 

 
 
© Copyright 2005 - Staffan Berg
- Alla rättigheter förbehålles -