C#磁盘空间管理(2)//磁盘空间管理 using?System; using?System.IO; using?System.Management;?//解决方案==>引用==>添加引用.? namespace?Host.AdminManager.Inc { public?class?Disk { //取得disk大小 public?string?DiskSize(string?path) { ManagementObject?size?=?new?ManagementObject("win32_logicaldisk.deviceid="+path); size.Get();? UInt64?b?=?1024; UInt64?a?=?(Convert.ToUInt64(size["Size"])/b)/b; return?a.ToString(); } //取得文件夹大小 public?string?size(string?path,?string?utterlyPath?,out?int?chang) { UInt64?t1024?=?1024,?t10?=?10; UInt64?v?=?FolderSize(path,utterlyPath); v?=?v/t1024; chang?=?Convert.ToInt32(v/t10); return?v.ToString(); } public?UInt64?FolderSize(string?path,?string?utterlyPath) { UInt64?Fsize?=?0; try?{ Fsize?=?FolderFileSize(path); DirectoryInfo?[]?folders?=?(new?DirectoryInfo(path)).GetDirectories(); foreach(DirectoryInfo?folder?in?folders) { if?(folder.FullName?!=?utterlyPath) Fsize?+=?FolderSize(folder.FullName,?utterlyPath); } } catch(Exception?ex) { //MessageBox.Show(ex.Message); } return?Fsize; }? public?UInt64?FolderFileSize(string?path) { UInt64?size?=?0; try { FileInfo?[]?files?=?(new?DirectoryInfo(path)).GetFiles(); foreach(FileInfo?file?in?files) { size?+=?(UInt64)file.Length; } } catch(Exception?ex) { //MessageBox.Show(ex.Message); } return?size; } } } //调用示范: string?path?=?Request.PhysicalApplicationPath; disk?d=new?disk(); string?o; //?大小 a.Text?=?d.size(path+@"Data\","",?out?o));? g1.Width?=?o; |