0

我已经开始编写一个 FTP 客户端应用程序(为了好玩)。我正在尝试用图标表示远程托管的文件。例如,假设我正在浏览 FTP 服务器 (/) 的根文件夹,并希望显示带有来自该客户端操作系统的图标关联的 Backup.zip 文件。在某些系统上,这可能是 Windows 压缩图标,而在其他操作系统上,这可能是 WinZip 或 WinRAR 图标。

我让客户端使用 SHGetFileInfo() 函数浏览本地文件。这适用于本地文件,但是,此功能需要物理文件才能检索关联的图标。因此,这不适用于远程托管的文件。我发现了一些给定文件扩展名的加载图标示例,这确实是问题所在......将图标与远程文件关联的最佳策略是什么?

  1. 每次去注册表并查找图标关联的扩展
  2. 使用每个扩展名创建 1 字节文件,并对远程文件使用 SHGetFileInfo() 函数(使用本地 1 字节文件作为远程文件的关联)
  3. 其他策略???

创建 FTP 客户端的专业软件公司会做什么?

感谢您的时间。

-杰西·豪尔

4

2 回答 2

1

我建议您不要每次都去注册表:如果需要就去,但是如果您已经使用过给定的文件类型,那么请记住/缓存该结果(在您的程序中)并重用它。

于 2009-01-19T17:55:47.887 回答
1

使用上一个 Stack Overflow 问题中关于相同想法的过程,并使用注册表而不是实际文件。

如何获取 Windows 资源管理器显示的文件类型图标?

于 2009-01-19T18:27:27.870 回答