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;