ASP.NET 磁盘操作(二)

作者:vkvi 来源:ITPOW(原创) 日期:2007-6-22

除了使用 System.IO.DriveInfo(Whidbey 方式)来获取磁盘信息外,还可以使用另外两种方法,这里作个简单的说明。

WMI 方式

使用 ManagementObject。

ManagementObject 的名称空间是:

System.Management

ManagementObject 的程序集是:

System.Management(在 System.Management.dll 中)

名称空间和程序集默认都是没有导入的。程序集可以在工程的属性中导入。

示例:

ManagementObject disk = new ManagementObject("Win32_LogicalDisk.deviceid=\"C:\""); ;
disk.Get();
long size = Convert.ToInt64(disk["Size"]);
long freeSpace = Convert.ToInt64(disk["FreeSpace"]);

interop 方式

分三步。

第一步、导入名称空间:

using System.Runtime.InteropServices;

第二步、引入函数:

[DllImport("kernel32.dll")]
public static extern bool GetDiskFreeSpaceEx(
    string lpDirectoryName,
    out UInt64 lpFreeBytesAvailable,
    out UInt64 lpTotalNumberOfBytes,
    out UInt64 lpTotalNumberOfFreeBytes);

第三步、调用这个函数:

ulong freeBytesAvailable = 0;
ulong totalNumberOfBytes = 0;
ulong totalNumberOfFreeBytes = 0;
GetDiskFreeSpaceEx("c:\\",
    out freeBytesAvailable,
    out totalNumberOfBytes,
    out totalNumberOfFreeBytes);

相关阅读

相关文章