如何获取FTP服务器上的icon图标?并且显示出来

mmking33 2005-04-08 12:50:28
ftp服务器上有好多文件,比方pdf,exe,txt,doc。。。。我如何获取他们的图标icon,正确显示。本地的图标显示bcb的例子里就有,直接用就可以
...全文
429 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mmking33 2005-04-08
  • 打赏
  • 举报
回复
ok,谢啦
Friecin 2005-04-08
  • 打赏
  • 举报
回复
补充一下,你可将FTP目录中的文件名,全部保存在TStringList结构中,然后遍历StringList

TStringList *FileName = new TStringList();
for( int i=0; i<FileName->Count; i++ )
{
TStringList *templist = new TStringList();
tmpList->SaveToFile( FileName->Strings[i] ); //保存一个空的文件

TIcon *TheIcon = new TIcon();
TImageList *FileImageList = new TImageList();
TSHFileInof FileInfo;

SHGetFileInfo(PChar(FileName->Strings[i]), 0, FileInfo, SizeOf(TSHFileInfo),
SHGFI_ICON or SHGFI_LARGEICON);
TheIcon->Handle = FileInfo.hIcon;
FileImageList->AddIcon(TheIcon);
//删除那个空的文件
DeleteFile( FileName->Strings[i]);

}

这样,FileImageList中就存放了你要的文件图标了!
Friecin 2005-04-08
  • 打赏
  • 举报
回复
上面的说的很清楚!
happyct 2005-04-08
  • 打赏
  • 举报
回复
上面的方法你需要创建一个临时文件,你也可以通过读取注册表方式来获取

TRegistry * reg = new TRegistry();
reg->RootKey = HKEY_CLASSES_ROOT;
AnsiString assoicate,exename ;
if(reg->OpenKey(".doc",false)){
assoicate = reg->ReadString("");
reg->CloseKey();
assoicate += "\\DefaultIcon";
if(reg->OpenKey(assoicate,false)){
exename = reg->ReadString("");
unsigned short Index = exename.SubString(exename.Length(),1).ToIntDef(1);
exename = exename.SubString(1,exename.Length()-2);
HICON icon = icon = ExtractAssociatedIcon(HInstance,exename.c_str(),&Index);
TIcon * nicon = new TIcon;
nicon->Handle = icon;
nicon->SaveToFile("c:\\a.ico");
delete nicon;
reg->CloseKey();
}
}
delete reg;
happyct 2005-04-08
  • 打赏
  • 举报
回复
ftp服务器里面无论多少文件,他的图标都是由浏览的客户端来决定的。得到了每个文件的扩展名,也就可以知道其图标。

本地文件的图标获取方式你知道吧?

TIcon *TheIcon = new TIcon();
TImageList *FileImageList = new TImageList();
TSHFileInof FileInfo;

SHGetFileInfo(PChar(FileName), 0, FileInfo, SizeOf(TSHFileInfo),
SHGFI_ICON or SHGFI_LARGEICON);
TheIcon->Handle = FileInfo.hIcon;
FileImageList->AddIcon(TheIcon);
constantine 2005-04-08
  • 打赏
  • 举报
回复
不会,顶

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧