【问题标题】:Icons from remote files来自远程文件的图标
【发布时间】:2009-01-19 17:48:33
【问题描述】:

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

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

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

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

感谢您的宝贵时间。

-杰西·豪尔

【问题讨论】:

    标签: file icons


    【解决方案1】:

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

    【讨论】:

    • 对 HKCR 的注册表访问将足够快,因为这部分很可能被缓存。我希望任何远程文件列表过程都会慢几个数量级。但是,缓存图标本身应该是值得的。
    【解决方案2】:

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

    How can I get the filetype icon that Windows Explorer shows?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-31
      • 2015-08-12
      • 2012-01-07
      • 1970-01-01
      • 2017-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多