现在的位置: 首页 > 综合 > 正文

ASP.NET 磁盘操作

2013年09月04日 ⁄ 综合 ⁄ 共 1498字 ⁄ 字号 评论关闭

DriveInfo 可以对 ASP.NET 进行磁盘操作。

DriveInfo 的名称空间是:

System.IO

我们以一个示例演示 DriveInfo 的应用。

DriveInfo[] driveInfos = DriveInfo.GetDrives(); //返回所有逻辑驱动器
foreach (DriveInfo driveInfo in driveInfos)
{
    if (driveInfo.IsReady)
    {
        //磁盘已经准备好。
        string driveName = driveInfo.Name;
        string volumeLabel = driveInfo.VolumeLabel;
        long totalSize = driveInfo.TotalSize;
        long totalFreeSpace = driveInfo.TotalFreeSpace;
        long availableFreeSpace = driveInfo.AvailableFreeSpace;
        string driveFormat = driveInfo.DriveFormat; //NTFS, FAT32...
        DriveType driveType = driveInfo.DriveType;
    }
}

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

相关阅读

抱歉!评论已关闭.