社区
网络及通讯开发
帖子详情
如何获取FTP服务器上的icon图标?并且显示出来
mmking33
2005-04-08 12:50:28
ftp服务器上有好多文件,比方pdf,exe,txt,doc。。。。我如何获取他们的图标icon,正确显示。本地的图标显示bcb的例子里就有,直接用就可以
...全文
429
6
打赏
收藏
如何获取FTP服务器上的icon图标?并且显示出来
ftp服务器上有好多文件,比方pdf,exe,txt,doc。。。。我如何获取他们的图标icon,正确显示。本地的图标显示bcb的例子里就有,直接用就可以
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用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
打赏
举报
回复
不会,顶
MySQL中的CREATE TABLE LIKE和CREATE TABLE SELECT
【代码】MySQL中的CREATE TABLE LIKE和CREATE TABLE SELECT。
SELECT INTO , INSERT INTO SELECT 和 CREATE TABLE AS SELECT 的区别
作者:lianghc 在开发的过程中经常会复制表的数据,将A表的数据复制到B表中,常见的操作方式有三种: 1.SELECT INTO FROM 2.INSERT INTO SELECT 3.CREATE TABLE AS SELECT 经常容易混淆,今天来整理下区别。 1.SELECT INTO FROM 语句形式为:SELECT value1, value2 in
【SQL】14 UNION 操作符、SELECT INTO 语句、INSERT INTO SELECT 语句、CREATE DATABASE 语句、CREATE TABLE 语句
SQL UNION 操作符 SQL UNION 操作符合并两个或多个 SELECT 语句的结果。 SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。 SQL UNION 语法 SELECT ...
sql学习-SELECT INTO、INSERT INTO SELECT、CREATE DATABASE、CREATE TABLE
SELECT INTO 介绍 可以从一个表复制数据,然后把数据插入到另一个新表中。 语法 SELECT * INTO table2 [IN externable] FROM table1 或 SELECT column_name(s) INTO table2 [IN externaldb] FROM table1 实例1 创建website 表的备份 SELECT * INTO WebsitesBackup2020 FROM Websites 实例2 只复制一些列插入到新表中 SELECT name
SELECT INTO 与 Create as
SELECT INTONameSELECT INTO -- 从一个查询的结果中创建一个新表 SynopsisSELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] * | expression [ AS output_name ] [, ...] INTO [ TEMPORARY | TEMP ] [ TABLE ]
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章