磁盘空间紧张,需要移除不需要的文件,但我不知道要删除多少个文件才能腾出足够的空间。有时,删除了一堆的小文件,还是不够。此资源包容一个VS2012项目FindAllHudgeFiles源码,在bin文件夹下可以得到可运行的exe文件。本程序使用C#和WPF开发,用途为查找指定文件夹下的大文件。
这一工具虽小,但用到的技术可不少。由于充分地应用了现成的技术与组件,比如DataGrid本身就己经有很强大的功能,使得整个程序代码量不大,界面友好性也不错。如果采用Java开发,工作量要大不少,最关键的是Java桌面应用性能够呛;如果用C++开发非托管版本,问题是开发效率太低,即使这样一个小程序,恐怕也得花不少时间(可能得一星期)才能实现C#版本的所有功能,不过C++版本会拥有一个好处,所有Windows下均可运行,并不需要安装.NET。
与其删除一堆的“小文件”,不如只关注“大文件”。为此,可以写一个小工具,搜索指定文件夹下的所有大于指定大小的文件。
技术选型:
本程序采用WPF开发,基于.NET 4.0。项目格式:Visual Studio 2012,开发语言:C#,如果使用Visual studio 2010,请自行创建一个WPF项目,将源码移入即可编译。
安装了.NET Framework 4.0的Windows计算机。在Windows 7 64位旗舰版下测试通过。
界面设计:
按照人们在找到文件后最需要的功能,设计程序界面如下:
中间的文件列表采用DataGrid控件,其它的都是简单的WPF控件,总体布局使用DockPanel,支持界面大小的动态调整。
(1)搜索功能采用.NET 4.0所提供的PLINQ完成,使用线程统一取消模型取消操作。
(2)由于搜索是在独立的线程中完成的,因此,更新界面的工作用到了Dispatcher对象,将UI更新代码推送到UI线程中执行。
(3)在查找文件过程中,部分系统文件夹会因权限问题而无法读取文件,故需妥善处理UnauthorizedAccessException异常。
(4)找到文件后,需要将文件名显示在列表中,为此设计了一个FoundFile类封装这些信息。显示工作利用了WPF强大的数据绑定机制。因此让FoundFile类实现INotifyPropertyChanged接口,并且将FoundFile对象放到ObservableCollection泛型集合中,绑定到DataGrid。这里需要指出的是,发现WPF数据绑定支持跨线程更新DataGrid,从而大大地减少了代码编写量。
(5)找到的文件大小是字节,为此,编写一个NumberConverter类,将其转换为常见的K,M、G等,设计WPF数据绑定机制使用它来进行数值转换(详看DataGrid的绑定表达式)
未经书面许可,严禁将本网内容作为AI训练资源。
33台词PC版 0.1
文件批量改名Bulk Rename Utility v3.4.1 中文绿色版
PDF快转(SanPDF) v2.0.6.66 官方版
菲菲更名宝贝之得意非凡FFRenamePro V4.0专业版
查找大文件(WizTree) v3.35 绿色版
文件比较查重工具WinMerge v2.16.8.0 中文版
Windows文件管理器(WinNc) v9.4.0.0 官方安装版
文件压缩档案提取(Explzh) v8.18 官方版
WinMerge v2.16.7.0 官方多语中文版
UltraCompare文件比较工具汉化修正中文版 V21.10.0.20免费64位注册码绿色版
文档自动转换工具BlackIce BiBatchConverter v4.80.632 官方版
批量文本文件处理器 V1.4绿色版
MAXHUB文档客户端 v1.3.1官方PC版
文件校验工具(EF CheckSum Manager) v20.02 官方版
全速pdf转换成excel转换器 v7.8.0.0官方版