【问题标题】:Simple file and folder view in C#C# 中的简单文件和文件夹视图
【发布时间】:2010-03-16 14:28:06
【问题描述】:

我最近看到一个应用程序有两个简单的控件(一个 treeView 和一个详细的 ListView)用于列出目录和文件。我知道如何做到这一点,但除了列出文件之外,它还有另一个不错的功能:它从系统外壳加载信息,如文件夹图标、文件规范(主要是文件类型,从系统继承,所以如果我有一个应用程序将 SVG 文件类型修改为“Unknown vectorgraphic stuff”,然后它将所有 SVG 文件的类型显示为之前的字符串)。

我想问你,我怎样才能在不使用任何第三方库的情况下轻松制作这些功能?

【问题讨论】:

    标签: c# shell treeview icons directory


    【解决方案1】:
    1. 要获取文件图标,请使用 System.Drawing.Icon.ExtractAssociatedIcon
    2. 要获取文件类型,需要使用Win32 SHGetFileInfo函数。
    3. 要获取修改日期、文件大小等,您可以使用 DirectoryInfoFileInfo 类。

    您还可以考虑使用像 Shell MegaPack 这样的现成控件,它以相同的图标、详细信息、菜单等显示文件/文件夹

    【讨论】:

    • 谢谢。 Shell Megapack 看起来是最好的解决方案,会尝试一下!
    【解决方案2】:

    您可以通过 System.Drawing.Icon.ExtractAssociatedIcon() 获取文件的图标...

    【讨论】:

    • 是的,我知道,但是用这个添加任何图标有点令人沮丧。不是有某种自动化版本吗?我的意思是提取图标并使用简单的命令将图标添加到节点?
    • 好吧 - 我想你可以获取当前视图的所有图标并将它们放入树视图的 ImageList 中,然后将图像 ID 分配给节点。但我会绘制树视图节点的所有者,并在绘制每个节点时检索文件/目录的图标并将其绘制在项目文本之前。
    • 是不是有点慢?而且,对于 treeView 它只需要文件夹图标。我更大的问题是 listView,它应该在其中获取文件的所有图标,文件类型也...
    猜你喜欢
    • 1970-01-01
    • 2011-02-22
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 2013-07-23
    相关资源
    最近更新 更多