//retrieves information about the amount of space available on a disk volume [DllImport ("Kernel32.dll")] public static extern bool GetDiskFreeSpaceEx( string lpDirectoryName, // directory name ref int lpFreeBytesAvailable, // bytes available to caller ref int lpTotalNumberOfBytes, // bytes on disk ref int lpTotalNumberOfFreeBytes // free bytes on disk );int lpFreeBytesAvailable=0; int lpTotalNumberOfBytes=0; int lpTotalNumberOfFreeBytes=0;GetDiskFreeSpaceEx("E:\\WinForm",ref lpFreeBytesAvailable,ref lpTotalNumberOfBytes,ref lpTotalNumberOfFreeBytes); MessageBox.Show("FreeBytesAvailable:"+lpFreeBytesAvailable.ToString() +"\r\n TotalNumberOfFreeBytes"+lpTotalNumberOfFreeBytes.ToString() +"\r\n TotalNumberOfBytes"+lpTotalNumberOfBytes.ToString()); }或用WMI
[DllImport ("Kernel32.dll")]
public static extern bool GetDiskFreeSpaceEx(
string lpDirectoryName, // directory name
ref int lpFreeBytesAvailable, // bytes available to caller
ref int lpTotalNumberOfBytes, // bytes on disk
ref int lpTotalNumberOfFreeBytes // free bytes on disk
);int lpFreeBytesAvailable=0;
int lpTotalNumberOfBytes=0;
int lpTotalNumberOfFreeBytes=0;GetDiskFreeSpaceEx("E:\\WinForm",ref lpFreeBytesAvailable,ref lpTotalNumberOfBytes,ref lpTotalNumberOfFreeBytes);
MessageBox.Show("FreeBytesAvailable:"+lpFreeBytesAvailable.ToString()
+"\r\n TotalNumberOfFreeBytes"+lpTotalNumberOfFreeBytes.ToString()
+"\r\n TotalNumberOfBytes"+lpTotalNumberOfBytes.ToString());
}或用WMI
"win32_logicaldisk.deviceid=\"c:\"");
PropertyDataCollection diskProperties = disk.Properties;
disk.Get();
MessageBox.Show(disk["FreeSpace"].ToString());
要想获得其它属性如下
PropertyDataCollection diskProperties = disk.Properties;
foreach (PropertyData diskProperty in diskProperties)
{
MessageBox.Show("Property = " + diskProperty.Name);
}