使用WinForms、WPF和C#创建带有标签页的文件资源管理器克隆

本文将展示如何使用WinFormsWPF和C#创建一个带有标签页的文件资源管理器克隆,该克隆包括一个非常快速的并行文件搜索工具。使用这个文件资源管理器来创建和组织三种类型的内容:自动化重复计算机任务的C# WPF项目;知识库;以及待办事项列表。

以下是文件资源管理器克隆在列表视图中的截图:

以下是文件资源管理器克隆在详细信息视图中的截图:

最初的目标是自动化解决问题本身,但在尝试实现这一目标的过程中,最终创建了一个文件资源管理器的克隆。想要自动化解决问题,因为看到了一个通用的模式,并且大部分的编程时间都花在执行解决问题的任务上。

以下是可以用来解决任何问题的通用模式或算法:

问题出现时,存在一个“差距”在实际和理想之间。 解决问题的第一步是比较实际和理想,并找到差异。 一旦确定了差异,需要将这些差异转化为知道如何执行的操作。 一旦差异被转化为操作,就执行这些操作以将实际转变为理想。

人工智能使用上述步骤来解决问题。AI有一个它知道如何执行的操作的知识库,它使用这些操作来消除事物实际状态和理想状态之间的差异。

知识库可以用来存储对某事物的理解(用人类语言表示)和计算机的理解(用计算机语言编写的脚本)之间的翻译。知识库充当键值对字典,人类语言作为“键”,计算机语言中的脚本作为最终的“值”。

就像谷歌地图找到两个地点之间的最短距离一样,AI使用知识库来确定需要执行的最少操作,以将实际问题状态转变为理想解决方案状态。

最初想要做的是创建一个应用程序,它会为执行上述解决问题的步骤,但这被证明太复杂了。因此,决定编写许多小型的C#WPF应用程序,这些程序可以自动化知道如何做的小事情。在编写了相当多的这些小型C#WPF应用程序之后,意识到需要一种简单的方法将这些小型操作脚本放入某种知识库,并使用热键启动它们。

这就是创建这个带有标签页的文件资源管理器克隆的原因。决定为文件资源管理器克隆添加标签页,因为不喜欢文件资源管理器每次查看不同文件夹时都需要打开不同的文件资源管理器实例的方式。标签页还提供了一个好处,允许在多个文件资源管理器中保存位置,以便以后可以回来。

为了在知识库中分类信息,需要能够创建类别和子类别,而不仅仅是文件夹。类别/子类别与普通文件夹的区别在于,类别/子类别允许在离开文件夹结构时保留已经展开/关闭的内容,而文件夹则不会。

很快意识到,经常喜欢在不退出文件资源管理器克隆的情况下编辑或查看文件,这就是创建预览模式的原因。

搜索是任何知识库中另一个重要的功能,所以添加了一个搜索图标,当点击时,它会在后台进行并行搜索。搜索允许在父文件夹的所有子文件夹中找到字符串或正则表达式在文本、Word或OpenOffice文件中的所有实例。可以使用热键导航到结果中文件的特定行,或者打开一个新的标签页,指向包含找到的文本的文件的直接父文件夹。

为了给文件夹/文件添加热键、元数据和其他功能,在用户右键单击文件夹/文件时添加了一个上下文菜单。

使用代码

开始的最简单的方法是下载可执行文件。然而,如果下载源代码,会发现它包含许多解决方案和项目。这些解决方案和项目展示了可以自动化并使用文件资源管理器克隆来做的事情。由于本文只关注文件资源管理器克隆,想要构建的解决方案是名为IdealAutomateExplorer的解决方案。

IdealAutomateExplorer解决方案由三个项目组成:dgFilterPopup;IdealAutomateExplorer;和IdealSqlTracer。

dgFilterPopup是一个出色的库,允许为datagridview添加过滤功能。没有编写这个项目,非常感谢Vincenzo Rossi在他的出色CodeProject文章中分享了这个库的信息。以下是这个库为文件资源管理器克隆添加的功能的截图:

IdealAutomateExplorer解决方案中的第二个项目是IdealAutomateExplorer项目。这个项目的主要页面是ExplorerView.cs页面。这个页面包含tabControl。在tabControl的每个tabPage中,有一个splitContainer。

splitContainer的Panel1用于保存当前标签页文件夹的datagridview。Panel2用于预览模式,显示在datagridview中选择的文件。Wordpad用于打开任何Word类型的文档,因为Wordpad是一个免费的应该在每个人的计算机上的工具,而Word不是。

解决方案中的第三个项目是IdealSqlTracer。可以通过Tools/Sql/IdealSqlTracer菜单选项访问IdealSqlTracer。IdealSqlTracer为提供了一个替代SqlProfiler的工具,允许捕获任何桌面或Web应用程序背后的所有SQL。IdealSqlTracer的一个不错的功能是它获取捕获的SQL并格式化,使其易于阅读。帮助屏幕中有大量文档可以了解更多关于这个强大工具的信息。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485