收藏 分销(赏)

基于windows的软件清理软件.doc

上传人:仙人****88 文档编号:9255464 上传时间:2025-03-18 格式:DOC 页数:44 大小:1,006KB
下载 相关 举报
基于windows的软件清理软件.doc_第1页
第1页 / 共44页
基于windows的软件清理软件.doc_第2页
第2页 / 共44页
点击查看更多>>
资源描述
摘要 随着电子信息化的逐渐普及,信息爆炸的时代已经来临。对电子信息的最基本形式——文件进行管理,已是摆到我们面前一个亟待需要解决的问题。 本课题基于windows的软件清理软件的开发在面向对象的基础上采用Arraylist对象对文件信息进行存储。能设置多种搜索条件的组合,包括搜索路径下所有同名文件、同内容文件及输入文件名、文件内容以匹配查找和一些时间、大小上的限制等,可以有效地清理电脑中的类似、重复文件,实现文件的可视化清理的特点。本课题进一步研究方向还可包括复制检测技术、网页查重技术等很多方面。 本软件的开发工具为Microsoft Visual Studio 2005,主要使用了.NET Framework类库。 关键字: 类似文件,重复文件,文件清理,.NET Framework ABSTRACT Along with electronic information-based gradually gainning around,the ages of the information explosion has already come. How to manage documents, the electronic information's most basic form, is already the problem that need to be resolve in front of us. This project, named File Clear Software Windows-based, adopting class of the arraylist object to store document information . It has variable setting options, including the search of all files with the same title, with the same contents of files and files matching the file name you input and words of contents you input and sometimes you can add time and size restrictions on to improve customer's work flexibly. The deep research of this project include many aspects,such as copy detection and online duplicate documents detection. The tool to develop this software is Microsoft Visual Studio is 2005 , mainly used the .NET Framework class library . Keyword: Similar files , Duplicate file, File clear, .NET Framework 目录 摘要 I ABSTRACT II 第1章 软件开发背景 1 1.1 软件开发背景 1 1.2 .NET Framework 3 1.3 本章小结 4 第2章 设计需求与目标 6 2.1 软件设计需求与目标 6 2.1.1 软件设计需求 6 2.1.2 软件设计目标 6 2.2 本章小结 7 第3章 功能设计 8 3.1 功能模块图 8 3.2 单个文件搜索功能 9 3.2.1 单个文件搜索功能简介 9 3.2.2 单个文件搜索功能流程图 9 3.3 所有类似文件搜索功能 10 3.3.1 所以类似文件查找功能简介 10 3.3.2 所有类似文件查找功能模块流程图 10 3.3.3 文件比较功能模块流程图 11 第4章 功能实现 12 4.1 文件查找模块实现 12 4.2 输入文件名以进行查找匹配 13 4.2.1 路径的选择 13 4.2.2 日期和大小的限制 14 4.2.3 搜索时同步显示路径 15 4.3 搜索路径下的所有同名文件 16 4.3.1 路径的选择 16 4.3.2 日期和大小的限制 17 4.3.3 搜索时同步显示路径和进度 18 4.4 搜索路径下所有内容相同的文件 18 4.5 类似文件管理模块实现 18 4.6 右键菜单功能 20 4.6.1 全部选择选项 21 4.6.2 打开选项 22 4.6.3 复制选项 23 4.6.4 删除选项 24 4.6.5 将文件删除至回收站选项 24 4.7 帮助功能模块 25 4.8 本章小结 26 第5章 毕业设计问题及解决 27 5.1 文件信息的存储 27 5.2 线程的顺序调用 28 5.3 线程调用控件的方法 29 5.3.1 Control.BeginInvoke 方法 (Delegate) 29 5.3.2 Control.InvokeRequired 属性 30 5.4 将文件删除至回收站 30 5.5 Update方法的使用 32 5.6 本章小结 32 第六章 本课题进一步研究的方向 34 6.1 对于类似定义的扩展 34 6.2 应用方向 35 6.2.1 复制检测技术 35 6.2.2 网页查重技术 36 第七章 结论 37 致谢 39 参考文献 40 IV 第1章 软件开发背景 1.1 软件开发背景 在学习编程的过程中,我们经常会将书本上的例子写下来,然后编译运行。或许你会专门建立一些文件夹,用以保存当前学习进度。不过,有时候编译器产生的文件没有保留的必要,就像由VC++6.O产生的*.pch文件,一般就在5MB 左右,时间久了,硬盘就会承受不了。从网上下载来的大量软件、图片、MP3等文件,重复的也有不少。各种各样的重复文件在硬盘上共存,既浪费宝贵的硬盘空间,又为我们的文件管理带来不便,如何节省磁盘空间、保证文档的惟一性,成了我们最关心的问题之一[1][2]。 许多优秀的国内外软件Space Hound 32,Clonekiller等可以帮助你找到磁盘中的所有文件名称相同、文件内容相同的重复文件,支持Office文件、文本文件、声音文件、图片文件等格式,然后以表格的形式显示出来,你可以决定是将这些重复文件直接删除,还是先将它们压缩为ZIP文件,以后万一出现什么问题可以进行恢复[3]。虽然这些软件在检索重复文件方面已经做得不错,但该类软件通常CPU占用率高,运行速度慢,占用系统资源较多。因此有必要开发一类软件,能高效地清除重复文件,降低CPU占用率,节省资源,提高用户工作灵活度。一个优秀的软件还应该提供友好的用户界面,否则将给用户的操作带来烦琐、不直观等问题,所以用户界面影响着一个软件发展。如何把软件设计得更符合人们的日常行为是软件设计者必须考虑的问题,尤其是直接面向低层用户的软件。用户主要是通过输入(鼠标、光笔和键盘)、输出设备(屏幕)与计算机进行人机对话的,软件的可视化操作(基于图形、图像的操作)就显得特别重要。过去,由于受到计算机软硬件和传统开发模式的限制,设计的软件在图形、图像功能上有很大的局限性。这种局限性一方面表现在不太符合人们的习惯行为,如信息反馈模式;另一方面表现在软件的“综合能力”较差,也就是说,计算机对图形认识是基于图形的形成过程而不是最终结果,这种局限性势必导致占用较多的计算机处理时间和增加交互操作时的用户等待时间,而且,由于计算机需要记住每一步操作,还要存储大量中间数据。这种局限性在现有软件中是普遍存在的。Visual Studio.NET 是一个功能强大、高效并且可扩展的编程环境,用.NET开发GUI界面非常的方便。在.NET Framework这个新开发平台下,我们可以更快更容易的开发出美观、高效和健壮的应用程序[4][5]。 要根据用户的需求清除电脑中的多余的文件,我们首先要解决的一个重要问题,就是如何存储搜索出来的大量文件的信息。由计算机中文件的存储方式,我们一般采用链式结构来存储文件,并对文件的信息进行比较。程序设计时应用动态存储分配技术可以减少应用程序数据存储的开销。VB在编程中提供了动态数组功能,可以根据数据的多少随时调整数组的大小,达到提高内存使用效率的目的。但是动态数组有一个缺陷,那就是当调整数组大小时数组中原有的所有数据都被清除,当使用关键字Preserve要求保留数组中原有的数据时,只能调整多维数组中最后一维下标的上界[6]。另外,当用数组存储大量数据时,在数组上的数据操作效率较低。有没有其他更好的方法呢,答案是肯定的,那就是arraylist。arraylist类可以信息像所有的集合那样,在需要时自动地扩展容量。 多年从事软件行业的人员都认同以下看法:软件开发更像是一种手工艺,而不是一种成熟的工业活动。虽然软件开发在近年取得了长足进步——例如在快速应用程序开发语言、调试器和代码生成器等编程工具方面——但对于高级专业程序员来说,编写健壮的企业级应用程序仍然是十分复杂的[7]。当然主要原因还在于编写软件的难度的确很大,但还有很多其他因素使得软件的生产更加困难和复杂。Microsoft.NET 提供了Windows操作系统的面向对象的概念,并含有数百个封装了所有最重要的Windows内核对象的类。例如,作为.Net的一部分的GDI+中包含了所有用于在窗口中输出图形的对象。 而本毕业设计是使用.NET框架结构下来开发一款结构精美简洁、功能多样的文件清理的可视化管理工具。即使这些重复文件已经更改名字或做了其它变动,只要它们的内容是一模一样的,这个工具就会将它找到,并由用户来选择对这些重复文件的各种操作----删除、拷贝、打开文件,打开文件夹,两个文件之间进行比较等,友好的用户界面使软件操作方便,直观。当然相关技术的应用还有许多方面,如复制检测技术在知识产权保护和信息检索中有着重要应用。到目前为止,复制检测技术主要集中在文档复制检测上。文档复制检测在初期主要检测程序复制,现在则主要为文本复制检测[9]。所谓复制检测,就是判断一个文件的内容是否抄袭、剽窃或者复制于另外一个或者多个文件。剽窃不仅仅意味着原封不动地照搬,还包括对原作的移位变换、同义词替换以及改变说法重述等方式。目前在这方面的研究已取得了相当的成绩,相信这方面的研究和技术应用以后将会有更大的发展和应用。 1.2 .NET Framework .NET Framework 是支持生成和运行下一代应用程序和 XML Web services 的内部 Windows 组件。.NET Framework 旨在实现下列目标: · 提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是在本地执行但在 Internet 上分布,或者是在远程执行的。 · 提供一个将软件部署和版本控制冲突最小化的代码执行环境。 · 提供一个可提高代码(包括由未知的或不完全受信任的第三方创建的代码)执行安全性的代码执行环境。 · 提供一个可消除脚本环境或解释环境的性能问题的代码执行环境。 · 使开发人员的经验在面对类型大不相同的应用程序(如基于 Windows 的应用程序和基于 Web 的应用程序)时保持一致。 · 按照工业标准生成所有通信,以确保基于 .NET Framework 的代码可与任何其他代码集成。 .NET Framework 具有两个主要组件:公共语言运行库和 .NET Framework 类库。公共语言运行库是 .NET Framework 的基础。您可以将运行库看作一个在执行时管理代码的代理,它提供内存管理、线程管理和远程处理等核心服务,并且还强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。.NET Framework 的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,您可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面 (GUI) 应用程序,也包括基于 ASP.NET 所提供的最新创新的应用程序(如 Web 窗体和 XML Web services)。 .NET Framework 可由非托管组件承载,这些组件将公共语言运行库加载到它们的进程中并启动托管代码的执行,从而创建一个可以同时利用托管和非托管功能的软件环境。.NET Framework 不但提供若干个运行库宿主,而且还支持第三方运行库宿主的开发。 例如,ASP.NET 承载运行库以为托管代码提供可伸缩的服务器端环境。ASP.NET 直接使用运行库以启用 ASP.NET 应用程序和 XML Web services(本主题稍后将对这两者进行讨论)。 Internet Explorer 是承载运行库(以 MIME 类型扩展的形式)的非托管应用程序的一个示例。使用 Internet Explorer 承载运行库使您能够在 HTML 文档中嵌入托管组件或 Windows 窗体控件。以这种方式承载运行库使得托管移动代码(类似于 Microsoft® ActiveX® 控件)成为可能,不过它需要进行重大改进(如不完全受信任的执行和独立的文件存储),而这种改进只有托管代码才能提供。 图1-1显示公共语言运行库和类库与应用程序之间以及与整个系统之间的关系,还显示托管代码如何在更大的结构内运行。 图 1-1 .NET Framework 环境 1.3 本章小结 本章论文阐述了本软件——基于window的文件清理工具研究开发的意义,它可以更好的管理我们的类似文件,释放硬盘空间。本软件是在.NET环境下开发的,.NET Framework 具有两个主要组件:公共语言运行库和 .NET Framework 类库。公共语言运行库是 .NET Framework 的基础。类库是一个综合性的面向对象的可重用类型集合,您可以使用它开发多种应用程序。 第2章 设计需求与目标 2.1 软件设计需求与目标 需求为软件开发人员定义了应该创建何种系统。通过需求来记录客户需要,这些需要是为了使客户能够创造价值,软件必须要解决的。同样,应该通过需求来驱动所需的全部软件活动,从而实现最终目标:交付能够为客户创造价值的软件。 2.1.1 软件设计需求 若要清理文件,收回硬盘空间,首当其冲的清除对象往往就是硬盘中存储的重复文件。不过,由于判定类似文件的条件千差万别,即便是Windows XP的搜索助手,也难以彻底地查出散布于硬盘各处的重复文件。因此本毕业设计的课题——基于windows的文件清理工具的功能设计,就是通过设计多样化的搜索条件,快速方便地查找硬盘中的类似文件,进而进行安全地删除或备份等其它管理操作。 2.1.2 软件设计目标 软件总体设计目标主要分为三个模块: u 文件搜索功能模块 在这个功能模块中,设计目标主要有4部分。 1.) 用户输入选择搜索路径。 2.) 根据需要选择搜索项。 A. 搜索路径下的所有同名文件。 此项功能将所选路径下所有文件名相同的搜索出来,搜索结果分组显示于树形目录中,点击每组的主节点,右边的列表视图将会以详细信息的方式将所选节点下的所有同一文件名信息显示在列表中,列表信息主要包括文件名、文件大小(bytes),文件的创建时间、最后一次修改时间以及文件的路径。 B. 输入文件名和文件内容以匹配查找。 此项功能要求输入全部或部分文件名信息,可以选择输入或不输入文件内容信息,也可以选择区分或者不区分大小写,搜索结果同样显示在右边列表中,列表信息主要包括文件名、文件大小(bytes),文件的创建时间、最后一次修改时间以及文件的路径。 C. 搜索路径下所有内容完全相同下文件。 此项功能不能选择文件大小,因为我们查找的为同一文件格式的内容完全相同的文件,搜索结果同样显示在右边列表中,列表信息主要包括文件名、文件大小(bytes),文件的创建时间、最后一次修改时间以及文件的路径。 D. 搜索限制条件主要分为文件时间和文件大小两大块。 用户可以限制文件的创建时间,最后修改时间,文件的大小。用户可以限制其中一个,全部限制或者不限制这些搜索条件。 3.) 然后按下“开始搜索”按钮,软件就找出与用户条件相匹配的文件信息输出在结果栏中,同步显示搜索路径。 u 文件管理功能模块 1.) 树形视图方式显示搜索到的类似文件,使用户看起来方便直观。 2.) 在结果栏中设计鼠标右键菜单对结果进行各种操作,打开文件,删除文件进行批量拷贝和删除等,也可双击直接打开文件。 u 帮助文档功能模块 这一个功能模块指导用户如何使用本软件,以及更好地发挥本软件的各种功能,以便用户更好地清理文件,收回硬盘空间并在使用过程中有问题便可以直接参考帮助文档解决疑难困惑。 2.2 本章小结 本章主要论述了软件设计的需求和目标。这是软件开发过程中相当重要的一个环节,要明确软件设计的需求,明确软件设计所要达到的目标:交付能够为客户创造价值的软件。否则软件功能再好、再多也是枉然。 第3章 功能设计 3.1 功能模块图 以下功能模块图3-1主要描述了文件清理工具的几个主要的功能: 所选路径下所有同名文件查找 输入文件名以匹配查找 所选路径下所有内容相同的文件查找 所有同名文件不限制时间大小 所有同名文件限制时间 所有同名文件限制大小 仅输入部分或全部文件 输入部分或全部文件和文件内容中的一个字或词组 仅输入部分或全部文件不限制时间大小 所选路径下所有内容相同的文件查找不限制时间 所选路径下所有内容相同的文件查找限制时间 所有同名文件限制时间大小 仅输入部分或全部文件限制时间 仅输入部分或全部文件限制大小 仅输入部分或全部文件限制时间大小 输入部分或全部文件和文件内容中的一个字或词不限制时间大小 输入部分或全部文件和文件内容中的一个字或词限制时间 输入部分或全部文件和文件内容中的一个字或词限制大小 输入部分或全部文件和文件内容中的一个字或词限制时间大小 图3-1 文件清理工具的功能模块图 3.2 单个文件搜索功能 输入文件名进行匹配查找搜索,因为知道文件名所以可以边搜索边进行比较查找。 3.2.1 单个文件搜索功能简介 单个文件搜索功能主要是输入文件名进行匹配查找搜索,在输入查找的文件名后,可以选折是否输入文件中的一个字或词组进行匹配查找,也可以选折是否区分大小写。还可以选折文件的创建时间、修改时间和文件的大小等进行组合查找匹配。 3.2.2 单个文件搜索功能流程图 单个文件搜索功能模块的流程图如图3-2所示。 图3-2 单个文件搜索功能模块流程图 3.3 所有类似文件搜索功能 所有类似文件搜索是将所选目录下的所有类似文件组查找处来,所以先是进行文件信息搜索,再进行文件比较匹配。 3.3.1 所以类似文件查找功能简介 先是选折搜索条件,此时不必输入文件名,但可以选折对文件创建时间、修改时间和文件的大小等进行组合查找匹配。先将路径下所有的文件信息搜索出来保存,再根据搜索到的文件信息进行比较找出类似文件组。 3.3.2 所有类似文件查找功能模块流程图 所有类似文件查找功能模块流程图如图3-3所示。 图3-3 文件查找功能模块流程图 由以上流程图3-3可知,该文件查找方法是一个递归的查找方法,用户首先输入所要查找的文件路径,在当前路径下分别得到所有文件信息和文件夹信息,如果是文件,则获取文件信息,如果是文件夹,则递归继续查找。 3.3.3 文件比较功能模块流程图 类似文件比较模块流程图如图3-4所示。 图3-4 类似文件比较模块流程图 由以上流程图3-4可知,首先输入arraylist对象al,定义整形变量i=0,j=0,布尔变量dup为false,j先加一,al(i)与al(j)进行比较,比较完j加一,当j加到最后值时,如果当中有与al(i)相同匹配的,则dup为true,al(i)文件信息输出,i加一进行下一轮的比较,具体比较方法可看流程图3-4。 第4章 功能实现 基于windows的文件清理工具主要是将系统中的类似或重名及同内容的文件搜索出,用户不但可以快速地找到目标文件,而且不需要再对文件进行另外步骤的处理,可以在软件的界面上轻松进行操作。操作包括单个文件的打开,删除,复制等,还能进行快速批量的删除和复制。 4.1 文件查找模块实现 文件查找的主要界面如图4-1所示。 图4-1 文件查找模块 4.2 输入文件名以进行查找匹配 4.2.1 路径的选择 首先在点击路径按钮弹出如图4-2的路径浏览。 图4-2 路径选择 图4-3 搜索条件的选择 对话框,选择我们所要查找的路径。这里主要用到了FolderBrowserDialog控件[8],当文件浏览对话框的对话结果返回ok时,将文件路径显示在文本框txtPath中,路径下面的ComboBox中我们可以选择三种主要的文件查找方式:搜索路径下的所有同名文件,输入全部或部分文件名以匹配查找(可以同时选择是否输入文件中内容的一个字或词组),可以选择是否区分大小写,查找搜索路径下的所有内容相同的文件。在第二种查找方式下,下面会出现输入文件名和文件中的一个字或词组的对话框,而在其他两个搜索条件下则没有这两个对话框,这里实现是在cbSChoose_SelectedIndexChanged事件下,根据选择的索引决定是否要显示这两个文本框。具体界面如图4-3所示。 4.2.2 日期和大小的限制 接下来是设置文件日期限制条件,如果选中时间限定(如图3-3)前的CheckBox,用户就可以选择要搜索的文件的时间条件,文件时间分为创建时间,最后修改时间,默认是创建时间。可以选择某个时间前或某个时间后,也可以选择一个时间段。在这里用到了日期时间拾取器DateTimePicker控件,用户能够方便地点击控件中的日期而避免复杂地日期输入。同时用户也可以选择文件大小的限制,大小单位主要有BYTES、KB和MB,如图3-4所示,大于小于或者在一个大小范围内都可以限制。有了这两个搜索条件,用户便可以定制自己期望的文件搜索条件,实现方便快捷地搜索。 图4-3 文件日期限制 图4-4 文件大小限制 4.2.3 搜索时同步显示路径 由于搜索内容可能比较多,所以在进行查找匹配,查找到哪个路径下便将该路径显示在状态栏上,由于这里是边比较边直接将比较结果显示出来,直接边搜索边显示比较结果并显示比较至的路径信息。如SingleCmp(ByVal dir As DirectoryInfo, ByVal showFiles As Boolean, ByVal filename As String, ByVal caps As Boolean)进行文件的搜索和比较,当找到一个类似文件时,调用ShowProgress(ByVal node As Object, ByVal totalDigits As Integer, ByVal digitsSoFar As Integer, ByVal addKind As Integer, ByVal addOrNot As Boolean)将其显示至树形管理目录中,ShowProgress的实现如图4-6所示。 同步显示文件路径 图 4-5 同步显示搜索路径 Delegate Sub ShowProgressDelegate(ByVal node As Object, ByVal totalDigits As Integer, ByVal digitsSoFar As Integer, ByVal addKind As Integer, ByVal addOrNot As Boolean) Public Sub ShowProgress(ByVal node As Object, ByVal totalDigits As Integer, ByVal digitsSoFar As Integer, ByVal addKind As Integer, ByVal addOrNot As Boolean) '// Make sure we're on the right thread If (tvuFile.InvokeRequired = False) Then If addOrNot Then If addKind = -1 Then tvuFile.Nodes.Add(node.ToString) Else Me.tvuFile.Nodes(addKind).Nodes.Add(node) End If End If ToolStripProgressBar1.ProgressBar.Maximum = totalDigits ToolStripProgressBar1.ProgressBar.Value = digitsSoFar If ToolStripProgressBar1.ProgressBar.Value = totalDigits Then ToolStripProgressBar1.ProgressBar.Value = 0 End If Else ' // Show progress asynchronously Dim showProgress1 As New ShowProgressDelegate(AddressOf ShowProgress) BeginInvoke(showProgress1, New Object() {node, totalDigits, digitsSoFar, addKind, addOrNot}) End If End Sub 图 4-6 搜索状态的显示实现 4.3 搜索路径下的所有同名文件 4.3.1 路径的选择 先是选折搜索条件,此时不必输入文件名,其搜索条件选择如图4-7所示。但可以选折对文件创建时间、修改时间和文件的大小等进行组合查找匹配。先将路径下所有的文件信息搜索出来保存,再根据搜索到的文件信息进行比较找出类似文件组。 图4-7 搜索条件的选择 4.3.2 日期和大小的限制 其日期和大小的限制与输入文件名进行匹配查找功能类似,如图4-8所示: 图4-8 所有同名文件查找的查找模块 4.3.3 搜索时同步显示路径和进度 搜索路径下所有同名文件:由于要将路径下所有的同名文件组找出来,所以需要首先将路径下的所有文件信息存起来,之后再进行比较,以找出所有的同名文件组。由于搜索的文件夹如果太大的话,搜索的时间显得有些长,所以需要开辟线程,在前面搜索文件信息时边搜索边显示路径,后面比较时,比较出一组同名文件边将其显示出来PrintDirTree(ByVal dir As DirectoryInfo, ByVal showFiles As Boolean, ByVal al As ArrayList)是将dir目录下的所有文件信息搜索出来的一个过程,过程ShowProgress2(ByVal dir As String)是将路径信息显示至状态标签的过程。文件进行比较时,亦同步显示比较的进度。过程allFileCmp(ByVal al As ArrayList, ByVal caps As Boolean)比较arraylist中的所有的文件信息,当比较出一组信息,便将其通过过程ShowProgress(ByVal node As Object, ByVal totalDigits As Integer, ByVal digitsSoFar As Integer, ByVal addKind As Integer, ByVal addOrNot As Boolean)过程显示出来。 4.4 搜索路径下所有内容相同的文件 先是将路径下所有的文件信息搜索出来保存,再根据文件的基本路径信息读取文件内容,对文件进行比较。如fileContCompare(ByVal al As ArrayList)在得到al中文件信息的情况下,通过StreamReader读取文件中的内容,用String.GetHashCode得到他的哈希代码以加快比较速度。在这里我只能将内容完全相同的所有文件组找出来,如果他们的内容以某种形式相似(一个文件可能包含或者部分改变地包含在另一个文件中,也有可能一个文件是另一个文件的重组等)还没能实现,我们可采用“类似指纹”的方法来实现它[10]。得到一组同内容文件便通过ShowProgress过程将其显示在树形管理目录中。 4.5 类似文件管理模块实现 类似文件查找出后,便要对其进行各种管理操作,这便是文件管理模块所要实现的主要功能。 图4-9文件查找后主界面 图4-10文件管理模块主界面 Class myTreeNode Inherits TreeNode Public FilePath As String Public fSize As String Public fCreTime As String Public fMdfTime As String Sub New(ByVal fp As String, ByVal fSizeIn As String, ByVal fCreTimeIn As String, ByVal fMdfTimeIn As String) MyBase.New() FilePath = fp fSize = fSizeIn fCreTime = fCreTimeIn fMdfTime = fMdfTimeIn Me.Text = fp.Substring(fp.LastIndexOf("\") + 1) End Sub End Class 如图4-10所示为用户对于搜索到的文件信息进行处理。我们采用树形管理目录(控件treeview)可以方便直观地对我们搜索到的类似文件进行各种处理。如上图是输入单个文件名hell以进行匹配查找的过程,该匹配是模糊匹配,树形管理目录中的主节点是hell,其所有的子节点是我们所搜索到的所有结果,单击任一子节点可以得到该文件的详细信息。其详细信息显示右边的listview控件中。在listview中对其进行各种操作。单击treeview 中的节点得到其文件信息。我 图4-11 对treenode类进行重载 们将文件的信息存储与每一个treenode,控件本身的treenode 不能存储我们所想要的文件信息。所以我们对treenode类进行重载。 当treeview的AfterSelect事件发生时,我们从选定节点中取出文件信息显示于右边的listview中。 4.6 右键菜单功能 为了方便用户对搜索的文件进行各种管理、操作,使用户对文件的各种操作变得简单直观。软件中采用了树形目录来显示搜索到的各种文件,并在显示文件具体信息的详细列表中可显示右键菜单功能以方便用户进行各种操作,其操作界面如下图4-12所示: 图4-12右键显示菜单 4.6.1 全部选择选项 该选项用主要是使用for 语句将listview中的每一项的Selected 属性设为 True来实现。点击该选项会选中listview控件中所列的所有结果项。如下图为选 右键全部选折后得到的结果,即listview中各个项都被选中。 图4-13 全部选择 4.6.2 打开选项 除了双击选中的选项可以打开文件之外,右键菜单中也可以打开文件。该功能的实现主要是定义一个进程,然后启动进程。便会打开这个文件,以便用户方便地浏览文件的内容。主要代码如下: Try myProcess.StartInfo.FileName = mypath myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Maximized myProcess.Start() Catch ex As Exception MessageBox.Show("无法打开该文件!", "", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification, False) End Try 如下图4-14所示选中hello.txt项,再右键点击打开后,文本文件hello.txt自动打开。 图4-14 文件打开 4.6.3 复制选项 该选项用将listview中选中的文件复制到剪贴板,首先定义一个字符串集合strcol,将选中的文件名添加进strcol,然后将剪贴板的SetFileDropList设为strcol即可实现将文件复制到剪贴版。主要代码如下: Dim strcol As New System.Collections.Specialized.StringCollection Dim i As Integer For Each i In lvuFile.SelectedIndices strcol.Add(lvuFile.Items.Item(i).SubItems(4).Text) Next Clipboard.SetFileDropList(strcol) 4.6.4 删除选项 该选项用File.Delete()函数实现。在Select All选项选中的情况下,点击此选项会删除结果列表中的所有信息,结果个数归零。否则便删除鼠标点击的这一条信息。 4.6.5 将文件删除至回收站选项 选项用DeleteFile函数实现。在选中所有选项选中的情况下,点击此选项会将结果列表中的所有文件删除到回收站,并清除结果列表listview,否则删除鼠标点击的这个文件到回收站,并清除结果列表中的这一项。删除时跳出提示,是否真的要删除至回收站。如图4-15显示选择删除至回收站项。图4-16显示是否确实要删除至回收站的确认项。 图4-15 右键选择删除至回收站选项 图4-16 将文件删除至回收站 4.7 帮助功能模块 这一个功能模块指导用户如何使用本软件,以及更好地发挥本软件的各种功能,以便用户更好地清理文件,收回硬盘空间并在使用过程中有问题便可以直接参考帮助文档解决疑难困惑
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服