我一直在为我的计算机开发一个标记程序。我需要能够将文件或文件夹列表传递给资源管理器(或类似的东西)以显示它们并能够像在 Windows 中使用文件夹视图一样操作它们。
我已经编写了记录和存储相对于计算机上文件路径的标签的软件,我可以动态搜索它们创建路径列表,但下一部分我有点难过。
即使有一个解决方案可以让操作人员误以为文件位于“临时”文件夹中并简单地显示它,那也是完美的。
到目前为止,我都是用 C# 编写的,但我对这种语言并不挑剔。
提前致谢!
IExplorerBrowser 控件是使用“Windows Explorer”控件的本机界面。这已在 .NET 框架的 Windows API 代码包 ( http://code.msdn.microsoft.com/WindowsAPICodePack )中以 .NET 方式包装
您可以从使用该控件开始(有 WPF 和 winforms 版本,带有事件、可以绑定的集合、要设置的大量属性/标志等)。
如果这不能为您提供所需的控制,您可以继续使用实际的 Shell 对象。上面的库还提供了访问不同类型的 Shell 对象——文件、文件夹、虚拟项目(如控制面板)、其他已知文件夹等。您可以查看它们的 Shell 示例并查看用法。
简而言之,您可以在应用程序中使用类似 ListBox 的控件并显示文件/文件夹的类型(在 Shell 中表示的任何内容)。您还可以获得有关每个对象的丰富信息,例如它们的缩略图/图标、属性等。
搜索 IShellFolder 和 IShellView。例如: http: //www.codeproject.com/KB/shell/explorer.aspx
这些界面使用起来不是特别简单,但也不是特别难,而且它们非常强大。从您的描述来看,这听起来与您在应用程序中托管资源管理器视图所需要的完全一样,将其指向真实的文件系统和/或自定义命名空间,然后自定义/覆盖行为。
创建您自己的目录查看器。然而,这将是一项相当具有挑战性和耗时/费钱的任务。
变体 2:
使用所有标记的树结构创建目录(使用指向所有真实文件的链接或只是一些 id-s)。
在资源管理器中显示。
跟踪该目录中的更改并使用您的标记数据进行更改。
当然,您也可以创建包含标记文件链接的临时文件夹,然后在您的应用程序中嵌入资源管理器控件,然后您可以导航到“file://c/temp/mytaggedfolder”或类似但..
将所有数据简单地添加到 listView 怎么样?例如,在 codeproject 上有很多示例代码。