File 远程文件中的图标

File 远程文件中的图标,file,icons,File,Icons,我已经开始编写FTP客户端应用程序(为了好玩)。我试图用图标表示远程托管的文件。例如,假设我正在浏览FTP服务器(/)的根文件夹,并希望显示该客户端操作系统中具有图标关联的Backup.zip文件。在某些系统上,这可能是windows压缩图标,而在其他操作系统上,这可能是WinZip或WinRAR图标 我让客户端使用SHGetFileInfo()函数浏览本地文件。这对于本地文件非常有效,但是,此功能需要物理文件才能检索相关图标。因此,这不适用于远程托管的文件。我发现了一些给定文件扩展名的加载图标

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

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

  • 每次转到注册表并查找图标关联的扩展
  • 创建每个扩展名为1字节的文件,并对远程文件使用SHGetFileInfo()函数(使用本地1字节文件作为远程文件的关联)
  • 其他策略
  • 创建FTP客户端的专业软件公司会做什么

    谢谢你抽出时间


    -Jessy Houle

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

    在这里使用上一个堆栈溢出问题中的过程,使用注册表而不是实际的文件


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