Translate Into English Coffee & Tea
ASP.NET 中的 AJAX ASP.NET 画图全接触 ASP.NET 与 XML 声明式数据绑定 ASP.NET 网页抓取
C# 基础 C# 类教程 C# 加密 ASP.NET 成员资格 非“自动化”处理 Excel
QuickAjax Ajax 完美的语法高亮器 Silverlight Popfly
通栏广告
ASP.NET 磁盘操作(二)

除了使用 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);

相关阅读

文章评论
  • jn

标题:必填
内容:
文章信息