C#磁盘空间管理(2) - Windows Live

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;
郑重声明:资讯 【C#磁盘空间管理(2) - Windows Live】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——