ドライブの容量を取得する
ドライブレターに関連づけられた DriveInfo クラスを生成して、そのメンバからディスクのサイズや空き容量などを取得します。
下記にサンプルソースを示します。
GetDriveInfo() の引数 drive_letter には "c" や "d" など、コロン抜きでドライブレターを指定してください。
GetRateOfOccupyAboutDrive() や GetRateOfFreeAboutDrive() の drive_letter 引数も同じです。
using System.IO; をお忘れなく.
// ドライブの、利用量、空き量、総量を取得する.
public bool GetDriveInfo( ref long bytes_use, ref long bytes_free, ref long bytes_total, String drive_letter )
{
try
{
DriveInfo di = new DriveInfo( drive_letter );
bytes_total = di.TotalSize;
bytes_free = di.AvailableFreeSpace;
bytes_use = bytes_total - bytes_free;
}
catch
{
bytes_use = (long)(0);
bytes_free = (long)(0);
bytes_total = (long)(0);
return false;
}
return true;
}
// ドライブの利用パーセントを取得する.
public bool GetRateOfOccupyAboutDrive( ref double rate, String drive_letter )
{
try
{
DriveInfo di = new DriveInfo( drive_letter );
long bytes_total = di.TotalSize;
long bytes_free = di.AvailableFreeSpace;
long bytes_use = bytes_total - bytes_free;
rate = (double)( bytes_use )/(double)( bytes_total );
}
catch
{
rate = 0.0;
return false;
}
return true;
}
// ドライブの空きパーセントを取得する.
public bool GetRateOfFreeAboutDrive( ref double rate, String drive_letter )
{
try
{
DriveInfo di = new DriveInfo( drive_letter );
long bytes_total = di.TotalSize;
long bytes_free = di.AvailableFreeSpace;
rate = (double)( bytes_free )/(double)( bytes_total );
}
catch
{
rate = 0.0;
return false;
}
return true;
}