TListView展示文件图标,文件名,文件类型,文件时间

procedure TForm22.FormCreate(Sender: TObject);
var
  FileInfo: TSHFileInfo;
  ImageListHandle: THandle;
begin
    ImageListHandle := SHGetFileInfo('C:\',        //将小图标集句柄指给列表
                                    0,
                                    FileInfo,
                                    SizeOf(FileInfo),
                                    SHGFI_SYSICONINDEX or SHGFI_SMALLICON);   {取小图标}
  SendMessage(Listview1.Handle, LVM_SETIMAGELIST, LVSIL_SMALL, ImageListHandle);  {图标关联}
end;

 

function TForm22.Search(const fileName: string): Boolean;
var
  Titem: Tlistitem;
  FileInfo: TSHFileInfo;
  Date: TDateTime;
  ModDate: string;
  TypeName: string;
  displayName: string;
  flag: Integer;
  ImageIndex: Integer;
  begin
  flag := SHGFI_DISPLAYNAME or SHGFI_TYPENAME or SHGFI_SYSICONINDEX
          or SHGFI_USEFILEATTRIBUTES or SHGFI_SMALLICON;    {设置要得到的信息值Flag}
  FillChar(FileInfo, SizeOf(FileInfo), #0);        {清空}
  SHGetFileInfo(PChar(fileName),                {指向的地址}
                0,
                FileInfo,                    {FileInfo信息}
                SizeOf(FileInfo),             {得到参数所占位元组数}
                flag);
  displayName := FileInfo.szDisplayName;      {得到文件名}
  TypeName := FileInfo.szTypeName;             {得到文件类型}
  ImageIndex :=  FileInfo.iIcon;               {得到图标下标}
  Fileage(fileName, Date);                     {文件修改时间}
  ModDate := DateTimeToStr(Date);
  with ListView1 do
  begin
    Titem := Items.Add;
    Titem.ImageIndex := ImageIndex;
    Titem.Caption:= displayName;
    Titem.SubItems.Add(IntToStr((Size + 1023) div 1024) + ' KB');    //文件大小算法
    Titem.SubItems.Add(TypeName);
    Titem.SubItems.Add(ModDate);
  end;

end;

posted @ 2012-10-15 22:01  邹晟  阅读(325)  评论(0编辑  收藏  举报