【问题标题】:Adding specific files or folders to a windows explorer view将特定文件或文件夹添加到 Windows 资源管理器视图
【发布时间】:2010-11-10 03:43:43
【问题描述】:

我一直在为我的计算机开发一个标记程序。我需要能够将文件或文件夹列表传递给资源管理器(或类似的东西)以显示它们并能够像在 Windows 中使用文件夹视图一样操作它们。

我已经编写了记录和存储相对于计算机上文件路径的标签的软件,我可以通过它们动态搜索创建路径列表,但下一部分我有点难过。

即使有一个解决方案可以让操作人员误以为文件位于“临时”文件夹中并简单地显示它,那也是完美的。

到目前为止,我都是用 C# 编写的,但我对这种语言并不挑剔。

提前致谢!

【问题讨论】:

    标签: c# windows file explorer directory


    【解决方案1】:

    IExplorerBrowser 控件是使用“Windows Explorer”控件的本机界面。这已在 .NET 框架的 Windows API 代码包中以 .NET 方式包装 (http://code.msdn.microsoft.com/WindowsAPICodePack)

    您可以从使用该控件开始(有一个 WPF 和 winforms 版本,带有事件、可以绑定到的集合、要设置的大量属性/标志等)。

    如果这不能为您提供所需的控制,您可以继续使用实际的 Shell 对象。上面的库还提供了访问不同类型的 Shell 对象 - 文件、文件夹、虚拟项目(如控制面板)、其他已知文件夹等。您可以查看它们的 Shell 示例并查看用法。

    简而言之,您可以在您的应用程序中使用类似 ListBox 的控件并显示文件/文件夹的类型(在 Shell 中表示的任何内容)。您还可以获得有关每个对象的丰富信息,例如它们的缩略图/图标、属性等。

    【讨论】:

      【解决方案2】:

      创建您自己的目录查看器。但是,这将是一项相当具有挑战性且耗时/费钱的任务。

      变体 2:

      使用所有标记的树结构创建目录(使用指向所有真实文件的链接或只是一些 id-s)。

      在资源管理器中显示。

      跟踪该目录中的更改并使用您的标记数据进行跟踪更改。

      【讨论】:

      • 那你为什么建议他这样做呢?
      • 因为我没有看到任何更简单的解决方案。除了创建Total Commander的插件)
      • 变种 1 是我一直试图完成的。但是,很难重新创建放入 Windows 资源管理器的口水和润色,特别是它是一个个人项目。通过创建目录,您的意思是将所有文件复制到临时目录并让资源管理器转到该目录?它会起作用,但解决这个问题似乎有点矫枉过正。此外,该程序将标记我的媒体服务器,该服务器上有 600+ mb 的文件,所以我希望这种方法表现不佳。
      • 不复制文件 - 创建链接,或任何你想要的。
      【解决方案3】:

      当然,您还可以创建包含标记文件链接的临时文件夹,然后在您的应用程序中嵌入一个资源管理器控件,然后您可以让导航到“file://c/temp/mytaggedfolder”或类似但..

      将所有数据简单地添加到 listView 怎么样?例如,在 codeproject 上有很多示例代码。

      【讨论】:

        【解决方案4】:

        搜索 IShellFolder 和 IShellView。例如:http://www.codeproject.com/KB/shell/explorer.aspx

        这些界面使用起来不是特别简单,但也不是特别难,而且它们非常强大。从您的描述来看,这听起来就像您需要在应用程序中托管资源管理器的视图,将其指向真实的文件系统和/或自定义命名空间,然后自定义/覆盖行为。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-29
          • 1970-01-01
          • 1970-01-01
          • 2014-12-26
          • 1970-01-01
          相关资源
          最近更新 更多