查找大文件工具,顧名思義就可以知道該軟件的功能。在磁盤空間緊張,需要移除不需要的文件,但不知道要刪除多少個文件才能騰出足夠的空間。有時,刪除了一堆的小文件,還是不夠。此資源包容一個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
立即下載