Architecture 图标加载方案

Architecture 图标加载方案,architecture,icons,Architecture,Icons,为应用程序加载图标的最佳方案是什么 有点背景。。。我正在创建一个类似FTP的应用程序,它有4个窗格(本地文件夹窗格、本地文件窗格、云文件夹窗格、云文件窗格)。在两个文件窗格中,其中一列是filename,我想在它旁边显示图标(就像您在Windows资源管理器中看到的那样) 如果我没有云中所有文件的物理文件,我必须进入注册表(手头有文件扩展名),获取该文件类型的ExeFileName和IconIndex组合,然后从那里检索图标。尽管如此,我认为我有以下选择,并希望得到您的意见: 1) 在程序加载和

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

有点背景。。。我正在创建一个类似FTP的应用程序,它有4个窗格(本地文件夹窗格、本地文件窗格、云文件夹窗格、云文件窗格)。在两个文件窗格中,其中一列是filename,我想在它旁边显示图标(就像您在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个图标文件类型,并显示其他文件类型的未知图标类型

感谢您的时间和评论


-Jessy Houle

我认为选项2听起来最合理,只要你缓存结果,那么你只需要查询一次给定的文件类型,即使有很多这种类型的文件

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


选项1和3似乎有些过分,特别是因为您很可能会多次显示最常见的图标,并且可能永远不会显示更模糊的图标。

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

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

选项1和3似乎有些过分,特别是因为你很可能会多次显示最常见的图标,而且可能永远不会显示更模糊的图标