为应用程序加载图标的最佳方案是什么?
一点背景知识...我正在创建一个类似 FTP 的应用程序,它有 4 个窗格(本地文件夹窗格、本地文件窗格、云文件夹窗格、云文件窗格)。在两个文件窗格中,其中一列是文件名,我想在旁边显示图标(就像您在 Windows 资源管理器中看到的一样)。
事实上,我没有云中所有文件的物理文件,我必须进入注册表(手头有文件扩展名)并获取该文件类型的 ExeFileName 和 IconIndex 组合,然后从那里检索图标。也就是说,我认为我有以下选择,并希望得到您的意见:
1) 在程序加载时为每个扩展名(例如:.doc、.txt)加载所有 ExeFileName/IconIndex 组合,并根据需要查询并使用它们调用 ExtractIcon Win32 API。
2) 仅在需要获取 ExeFileName/IconIndex 组合并调用 ExtractIcon Win32 API 以获取关联文件类型的图标时才进入注册表。
3) 将每个已知扩展名的 1 字节文件保存到一个目录并调用 SHGetFileInfo Win32 API 并在需要时从文件中提取相关图标。
4) 将安装时每个文件扩展名的物理图标文件保存到一个目录中,并在需要时调用它(但不会随着文件关联的更改、添加或删除而改变)。
5)垃圾整件事,从图标商店购买一组图标,该图标文件类型已知前 1000 种图标文件类型,并显示其他文件类型的未知图标类型。
感谢您的时间和评论。
-杰西·豪尔