如何获取一个文件的扩展名,创建时间,最后修改时间等等的一系列和文件有关的信息?

解决方案 »

  1.   

    var
      FileRec:TSearchrec;
    begin
       if FindFirst('C:\olp\verFile.ini', faAnyFile, FileRec) = 0 then
        begin
          if (FileRec.Attr and faDirectory) = 0 then
          begin
            ShowMessage('FileName: '+ FileRec.Name + Chr(13) + ' FileSize: ' + IntToStr(FileRec.Size));
            ShowMessage(DateToStr(FileDateToDatetime(FileRec.Time)));
          end;
          FindClose(FileRec);
        end;
    end;注:
     TSearchRec = record
        Time: Integer;
        Size: Integer;
        Attr: Integer;
        Name: TFileName;
        ExcludeAttr: Integer;
        FindHandle: THandle;
        FindData: TWin32FindData;
    end;
    Time contains the time stamp of the file. It can be converted to a TDateTime value using FileDateToDateTime.Size 文件大小 in bytes. Name 文件名(含扩展名)FindHandle is an internal handle used to track find state.FindData (Windows only) 含 文件创建时间,最后修改时间等等 
      

  2.   

    2楼好快,我的也贴出来吧!
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls,QFileCtrls,shellapi,ShlObj,  ActiveX ,QDialogs,inifiles;
    type
     TFileProperty=record
       FileName :string;
       Size :integer;
       Attr : integer;
       DOSFileName :string;
       CreationTime:TSystemTime;
       LastWriteTime:TSystemTime;
       LastAccessTime :TSystemTime;
    end;
    type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
      function GetFileProp(FileName: string): TFileProperty;  function FileTimeToLocalSystemTime(FTime: TFileTime): TSystemTime;
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}
    function tform1.FileTimeToLocalSystemTime(FTime: TFileTime): TSystemTime;
    var
      STime: TSystemTime;
    begin
      FileTimeToLocalFileTime(FTime, FTime);
      FileTimeToSystemTime(FTime, STime);
      Result := STime;
    end;
    function TForm1.GetFileProp(FileName: string): TFileProperty;
    var
      SR: TSearchRec;
    begin
      if FindFirst(FileName, faAnyFile, SR) = 0 then
      begin
        Result.FileName := FileName;
        Result.Size := SR.Size; //大小
        Result.Attr := SR.Attr;
        Result.DOSFileName := SR.FindData.cAlternateFileName;
        Result.CreationTime := FileTimeToLocalSystemTime(SR.FindData.ftCreationTime); //创建时间
        Result.LastWriteTime := FileTimeToLocalSystemTime(SR.FindData.ftLastWriteTime);//修改时间
        Result.LastAccessTime := FileTimeToLocalSystemTime(SR.FindData.ftLastAccessTime); //最后访问时间
        FindClose(SR);
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var st:TFileProperty;
    begin
    st :=GetFileProp('C:\BOOT\BOOTDISK.img');
    showmessage(datetostr(SystemTimeToDateTime(st.CreationTime)));
    showmessage(datetostr(SystemTimeToDateTime(st.LastWriteTime)));
    showmessage(datetostr(SystemTimeToDateTime(st.LastAccessTime)));
    end;end.
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      myfilename : String;
      fhandle : THandle;
    begin
      if OpenDialog1.Execute then
        myfilename := OpenDialog1.FileName;
      ListBox1.Items.Add('文件名:' + ExtractFileName(myfilename));  //文件名
      ListBox1.Items.Add('扩展名:' + ExtractFileExt(myfilename));   //扩展名
      fhandle := FileOpen(myfilename,0);
      try
        ListBox1.Items.Add('修改时间:'+ DateTimeToStr(FileDateToDateTime(FileGetDate(fhandle)))); //修改日期
      finally
        FileClose(fhandle);
      end;   
    end;