查找大文件工具,顾名思义就可以知道该软件的功能。在磁盘空间紧张,需要移除不需要的文件,但不知道要删除多少个文件才能腾出足够的空间。有时,删除了一堆的小文件,还是不够。此资源包容一个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的绑定表达式)
70KB / 03-27
系统其他
下载21.5M / 02-01
游戏补丁
下载231KB / 09-26
系统优化
下载76.4M / 03-25
立即下载55M / 06-05
立即下载237.9M / 04-13
立即下载140.5M / 03-06
立即下载900.9M / 03-02
立即下载96.2M / 07-06
立即下载311.2M / 07-06
立即下载335M / 07-06
立即下载200M / 07-06
立即下载413.8M / 07-06
立即下载353.9M / 06-05
立即下载131.8M / 04-13
立即下载230.8M / 03-03
立即下载195.6M / 03-03
立即下载165.4M / 03-03
立即下载45.6M / 09-08
立即下载665.2M / 07-06
立即下载2.84G / 07-06
立即下载93M / 07-06
立即下载338.3M / 07-06
立即下载1.38G / 07-26
立即下载488.3M / 07-16
立即下载109.8M / 06-03
立即下载142M / 01-08
立即下载1.2M / 11-23
立即下载548.8M / 04-13
立即下载1.6M / 04-13
立即下载1.48G / 03-18
立即下载646.6M / 03-03
立即下载133.7M / 03-03
立即下载325.8M / 06-07
立即下载60M / 04-29
立即下载254M / 04-25
立即下载659M / 04-23
立即下载1M / 12-26
立即下载253.4M / 12-08
立即下载253M / 12-08
立即下载1.19G / 11-16
立即下载110.5M / 04-23
立即下载26.7M / 03-16
立即下载488.3M / 07-16
立即下载248.9M / 12-08
立即下载248.9M / 12-08
立即下载201.2M / 04-13
立即下载100.6M / 03-06
立即下载148.9M / 03-06
立即下载1.12G / 07-06
立即下载1.25G / 07-06
立即下载9.48G / 07-06
立即下载50KB / 07-06
立即下载116.2M / 04-10
立即下载1.92G / 04-17
立即下载201.5M / 04-13
立即下载7.31G / 07-01
立即下载94.3M / 07-06
立即下载2.48G / 07-06
立即下载7.63G / 07-06
立即下载1M / 07-06
立即下载778.1M / 07-06
立即下载509.7M / 07-06
立即下载561.8M / 07-11
立即下载1.32G / 01-19
立即下载72M / 07-06
立即下载548.7M / 07-06
立即下载1.00G / 07-06
立即下载9.13G / 07-06
立即下载126.2M / 07-06
立即下载72M / 07-06
立即下载105.1M / 07-06
立即下载132M / 07-06
立即下载