下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第C#獲取文件夾所占空間大小的功能雖然現(xiàn)在硬盤越來越大,但是清理垃圾還是必要的。這時(shí)我們往往需要一個(gè)獲取文件夾所占空間大小的功能,從而判斷垃圾文件的位置。
這個(gè)時(shí)候,我們常用的在右鍵屬性中查看文件夾所占空間的方法顯得效率實(shí)在太低。往往需要一些工具來輔助實(shí)現(xiàn)這個(gè)功能。一般有兩個(gè)工具可以實(shí)現(xiàn)這個(gè)功能:diruse和du。diruse是MS在系統(tǒng)中的一個(gè)附加的工具,du是sysinternals公司的,不過sysinternals好像已經(jīng)被MS收購(gòu)了。這兩個(gè)工具都是命令行工具,但也保持著MS一貫的簡(jiǎn)單易用的特點(diǎn)。
這里以diruse為例介紹其用法:
diruse/M/*c:\OTHER
Size(mb)FilesDirectory
2.9114SUB-TOTAL:C:\OTHER\BusinessInfo
61.981309SUB-TOTAL:C:\OTHER\software
41.6041SUB-TOTAL:C:\OTHER\drivers
0.0221SUB-TOTAL:C:\OTHER\work
3.039SUB-TOTAL:C:\OTHER\config
0.003SUB-TOTAL:C:\OTHER\lnetwork
182.16537SUB-TOTAL:C:\OTHER\bkup
14.716SUB-TOTAL:C:\OTHER\vpnclient
1.8160SUB-TOTAL:C:\OTHER\info
817.20224SUB-TOTAL:C:\OTHER\tools
515.25449SUB-TOTAL:C:\OTHER\wtnfiles
3089.5010765SUB-TOTAL:C:\OTHER\MP3
4730.1813438TOTAL
可以非常直觀的看到各個(gè)文件夾所占的空間。
但是一個(gè)非常郁悶的地方是:這兩個(gè)程序都不支持中文,一旦碰到中文文件夾就暈菜了,無法顯示全部路徑。作為MS的官方工具,有這個(gè)bug確實(shí)讓人大跌眼鏡。沒辦法,我只好寫了個(gè)程序來糾正這個(gè)bug。
classDirUseInfo
publicstringPath{get;privateset;}
publicintPercent{get;privateset;}
publicintFileCount{get;set;}
publiclongSize{get;set;}
LazyDirUseInfo[]subDirs;
publicDirUseInfo[]SubDirs{get{returnsubDirs.Value;}}
privateDirUseInfo(stringpath,longsize,intfileCount,intpercent)
this.Path=path;
this.Size=size;
this.FileCount=fileCount;
this.Percent=percent;
this.subDirs=fileCount==0newLazyDirUseInfo[]():newLazyDirUseInfo[](()=GetDirUseInfo(path));
publicoverridestringToString()
returnstring.Format("[{0}%{1}{2}]",Percent,Size,Path);
publicstaticDirUseInfo[]GetDirUseInfo(stringdir)
varsubDirs=Directory.GetDirectories(dir);
varp=Process.Start(newProcessStartInfo(@"D:\Tools\Du\diruse.exe",@"/*"+dir)
UseShellExecute=false,
RedirectStandardOutput=true,
});
p.WaitForExit();
varoutput=p.StandardOutput.ReadToEnd();
varmatches=Regex.Matches(output,@"(\d+|AccessDenied)\s+(\d+).+");
if(subDirs.Length!=matches.Count-1)//match最后一項(xiàng)是匯總
thrownewInvalidOperationException();
vartotalSize=long.Parse(matches[matches.Count-1].Groups[1].Value);
vardirsUseInfo=newDirUseInfo[subDirs.Length];
for(inti=0;idirsUseInfo.Length;i++)
vargroups=matches[i].Groups;
varpath=subDirs[i];
varfileCount=int.Parse(groups[2].Value);
varsize=matches[i].Value.StartsWith("AccessDenied")0:long.Parse(groups[1].Value);
varpercent=(int)(size*100/totalSize);
dirsUseInfo[i]=newDirUseInfo(path,size,fileCount,percent);
returndirsUseInfo;
}
原理很簡(jiǎn)單,僅僅是用C#把diruse的輸出封裝和匹配了一下,使其生成一個(gè)DirUseInfo的對(duì)象,利用diruse的輸出獲取了一些常用的信息。從而可以集成
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年邱縣招教考試備考題庫(kù)附答案解析(奪冠)
- 2025年道孚縣幼兒園教師招教考試備考題庫(kù)及答案解析(奪冠)
- 2026年大連楓葉職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性考試模擬測(cè)試卷帶答案解析
- 2024年蒲江縣幼兒園教師招教考試備考題庫(kù)帶答案解析(必刷)
- 2025年且末縣幼兒園教師招教考試備考題庫(kù)及答案解析(必刷)
- 2026年及未來5年市場(chǎng)數(shù)據(jù)中國(guó)廣播系統(tǒng)行業(yè)市場(chǎng)深度研究及投資策略研究報(bào)告
- 2026年及未來5年市場(chǎng)數(shù)據(jù)中國(guó)聯(lián)合辦公行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及投資策略咨詢報(bào)告
- 同業(yè)業(yè)務(wù)培訓(xùn)
- 口腔科培訓(xùn)課件教學(xué)
- 制造業(yè)安全知識(shí)培訓(xùn)
- 光伏發(fā)電安裝質(zhì)量驗(yàn)收評(píng)定表
- AQ 1046-2007 地勘時(shí)期煤層瓦斯含量測(cè)定方法(正式版)
- 房屋過戶給子女的協(xié)議書的范文
- 超聲振動(dòng)珩磨裝置的總體設(shè)計(jì)
- 新媒體藝術(shù)的發(fā)展歷程及藝術(shù)特征
- 醫(yī)保違規(guī)行為分類培訓(xùn)課件
- 講課學(xué)生數(shù)學(xué)學(xué)習(xí)成就
- 醫(yī)療器械法規(guī)對(duì)互聯(lián)網(wǎng)銷售的限制
- 西葫蘆栽培技術(shù)要點(diǎn)
- 系桿拱橋系桿預(yù)應(yīng)力施工控制要點(diǎn)
- 三亞市海棠灣椰子洲島土地價(jià)格咨詢報(bào)告樣本及三洲工程造價(jià)咨詢有限公司管理制度
評(píng)論
0/150
提交評(píng)論