1

为应用程序加载图标的最佳方案是什么?

一点背景知识...我正在创建一个类似 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 种图标文件类型,并显示其他文件类型的未知图标类型。

感谢您的时间和评论。

-杰西·豪尔

4

1 回答 1

1

我认为选项 2 听起来最合理,只要您缓存结果,因此您只查询给定文件类型一次,即使该类型的文件有很多。

我认为选项 4 和 5 已经过时,因为它们不会反映关联的变化。如果您的应用程序与 Windows 资源管理器中的图标不同,这可能会使用户感到困惑。

选项 1 和 3 似乎有点矫枉过正,尤其是因为您很可能会多次显示最常见的图标,而可能永远不会显示更晦涩的图标。

于 2008-10-31T18:43:40.580 回答