写进行远程文件管理系统时,需要同时浏览本地和远程的文件列表,本地列表读取很简单,DELPHI下有Demos\DelphiWin32\VCLWin32\VirtualListView,读取本地已存在的文件夹或文件时,使用API函数SHGetFileInfo,第2个参数为0;读取不存在的文件类型时第2个参数区别为
FILE_ATTRIBUTE_NORMAL(文件),或FILE_ATTRIBUTE_NORMAL or FILE_ATTRIBUTE_DIRECTORY(文件夹);
以下是关键代码function GetUnknowFileInfo(const AFile: string; Attrs: DWORD): TSHFileInfo;
begin
fillchar(Result, sizeof(TSHFileInfo), 0);
if IsPathDelimiter(AFile, Length(AFile)) then
Attrs := Attrs or FILE_ATTRIBUTE_DIRECTORY;
SHGetFileInfo(PChar(AFile), Attrs, Result, SizeOf(TSHFileInfo),
SHGFI_SYSICONINDEX or SHGFI_USEFILEATTRIBUTES
or SHGFI_TYPENAME);
end;
procedure TForm1.SetListviewFile(typeName: string);
var
Info: TSHFileInfo;
begin
Info := GetUnknowFileInfo(pchar(typeName), FILE_ATTRIBUTE_NORMAL);
with ListView1.Items.Add do begin
ImageIndex := Info.iIcon;
Caption := Info.szDisplayName;
SubItems.add(Info.szTypeName);
end;
end;效果如下:
本文介绍在DELPHI环境下实现本地与远程文件管理系统的技巧。通过使用API函数SHGetFileInfo来读取本地文件夹及文件信息,并根据不同文件类型调整参数。文中提供了关键代码示例,展示了如何设置列表视图的图标和文件类型。
4150

被折叠的 条评论
为什么被折叠?



