来自远程文件的图标
我已经开始编写 FTP 客户端应用程序(为了好玩)。 我正在尝试用图标表示远程托管文件。 例如,假设我正在浏览 FTP 服务器 (/) 的根文件夹,并且想要显示带有该客户端操作系统的图标关联的 Backup.zip 文件。 在某些系统上,这可能是 Windows 压缩图标,而在其他操作系统上,这可能是 WinZip 或 WinRAR 图标。
我让客户端使用 SHGetFileInfo() 函数浏览本地文件。 这对于本地文件非常有效,但是,此功能需要物理文件才能检索关联的图标。 因此,这不适用于远程托管的文件。 我发现了一些加载给定文件扩展名的图标的示例,这确实是问题所在......获取与远程文件关联的图标的最佳策略是什么?
- 每次都去注册表并查找图标关联的扩展名
- 使用每个扩展名创建 1 字节文件,并对远程文件使用 SHGetFileInfo() 函数(使用本地 1 字节文件作为远程文件的关联)
- 其他策略???
专业软件公司创建 FTP 客户端会做什么?
感谢您的时间。
-杰西·霍尔
I have started coding an FTP client application (for fun). I’m trying to represent remotely hosted files with icons. For example, let’s say I’m browsing the root folder of an FTP server (/) and want to display the Backup.zip file with the icon association from that client operating system. On some systems, this may be the windows compression icon and other operating systems this may be WinZip or WinRAR icons.
I have the client browsing local files with the SHGetFileInfo() function. This works great with files that are local, however, this function requires the physical file in order to retrieve the associated icon. So, this will not work with remotely hosted files. I have found some samples of loading icons given a file extension, and this is really where the question comes in... What would be the best strategy to get icons associated to remote files?
- Go to the registry every time and look up extension to icon associations
- Create 1 byte files with each extension and use the SHGetFileInfo() function for remote files (using local 1 byte files as association for remote files)
- Other strategies???
What would a professional software company creating an FTP client do?
Thank you for your time.
-Jessy Houle
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我建议您不要每次都去注册表:如果需要就去,但是如果您已经使用过给定的文件类型,那么请记住/缓存该结果(在您的程序中)并重用它。
I suggest that you don't go to the registry every time: go if you need to, but if you've already been for a given filetype then remember/cache that result (within your program) and reuse it.
使用之前的 Stack Overflow 问题中的过程具有相同的想法,并使用注册表而不是实际文件。
如何获取文件类型图标Windows 资源管理器显示?
Use the procedure here from a previous Stack Overflow question on the same idea and uses the registry instead of an actual file.
How can I get the filetype icon that Windows Explorer shows?