ドライブの容量を取得する

ドライブレターに関連づけられた 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;

}