2008-10-31 40 views
1

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

有点背景......我创建了一个具有4个窗格(本地文件夹窗格,本地文件窗格,云文件夹窗格,云文件窗格)的类FTP应用程序。在这两个文件窗格中,其中一列是文件名,我想在旁边显示图标(就像您在Windows资源管理器中看到的一样)。

做这样的事实,我没有在云中的所有文件的物理文件,我已经捅到注册表(在手的文件扩展名),并获得该文件类型的ExeFileName和IconIndex结合,从那里检索图标。这就是说,我认为我有以下选项,并希望得到您的意见:

1)在程序加载时根据需要为每个扩展名(EG:.doc,.txt)加载所有ExeFileName/IconIndex组合查询并使用它们调用ExtractIcon Win32 API。

2)只有在需要获取ExeFileName/IconIndex组合并调出ExtractIcon Win32 API以获取关联文件类型的图标时,才能进入注册表。

3)将每个已知扩展名的1字节文件保存到一个目录中,并呼叫到SHGetFileInfo Win32 API,并在需要时从文件中提取相关图标。

4)在安装时将每个文件扩展名的物理图标文件保存到一个目录,并在需要时调出(但不会随着文件关联更改,添加或删除而更改)。

5)垃圾整个事情,并从一个图标商店购买了1000个图标文件类型已知的图标,并显示其他文件类型的未知图标类型。

谢谢你的时间和意见。

-Jessy埒

回答

1

我认为选择2听起来最合理的,只要你缓存的结果,所以你只能查询一个给定的文件类型一次,即使有该类型的多个文件。

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

选项1 & 3似乎有点小题大做,特别是因为你很可能会呈现出最常见的图标了很多次,也许永远显示比较模糊的。