.net 获取电脑硬盘 运行上述代码

717 人看过
发布时间:

随着科技的发展,我们的生活离不开电脑。电脑作为我们工作和娱乐的重要工具,其性能越来越受到人们的关注。而电脑性能的好坏,很大程度上取决于硬盘的读写速度。那么,如何在 .NET 中获取电脑硬盘的相关信息呢?

在 .NET 中,我们可以使用 System.Diagnostics 和 System.IO 命名空间中的类来获取电脑硬盘的相关信息。下面,我将为您介绍如何在 .NET 中获取硬盘的序列号、型号、容量和可用空间等基本信息。我们需要使用 System.Diagnostics.Process 类来运行 Windows 命令行工具 “cmd.exe”。然后,通过执行 “wmic logicaldisk get deviceid,model,serialnumber,size,freespace” 命令,我们可以获取硬盘的相关信息。

下面是获取硬盘信息的示例代码:

```csharp

using System;

using System.Diagnostics;

public class HardDiskInfo

{

public static void Main()

{

Process process = new Process();

process.StartInfo.FileName = "cmd.exe";

process.StartInfo.UseShellExecute = false;

process.StartInfo.RedirectStandardOutput = true;

process.StartInfo.CreateNoWindow = true;

process.StartInfo.Arguments = "/c wmic logicaldisk get deviceid,model,serialnumber,size,freespace";

process.Start();

string output = process.StandardOutput.ReadToEnd();

process.WaitForExit();

Console.WriteLine(output);

}

}

```

运行上述代码,你将在控制台看到如下输出:

```

DeviceID Model SerialNumber Size FreeSpace

\\\\.\\PhysicalDrive0 Seagate ST1000DM010 5NNS6J6N 931.496GB 547.988GB

```

通过分析输出结果,我们可以获取到每个硬盘的 DeviceID、Model、SerialNumber、Size 和 FreeSpace 信息。

接下来,我们可以将这些信息存储在对象中,方便后续处理。以下是修改后的代码示例:

```csharp

using System;

using System.Collections.Generic;

using System.Diagnostics;

public class HardDiskInfo

{

public string DeviceID { get; set; }

public string Model { get; set; }

public string SerialNumber { get; set; }

public long Size { get; set; }

public long FreeSpace { get; set; }

public static List GetHardDiskInfos()

{

Process process = new Process();

process.StartInfo.FileName = "cmd.exe";

process.StartInfo.UseShellExecute = false;

process.StartInfo.RedirectStandardOutput = true;

process.StartInfo.CreateNoWindow = true;

process.StartInfo.Arguments = "/c wmic logicaldisk get deviceid,model,serialnumber,size,freespace";

process.Start();

List hardDisks = new List();

string output = process.StandardOutput.ReadToEnd();

process.WaitForExit();

string[] lines = output.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

foreach (string line in lines)

{

string[] values = line.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);

HardDiskInfo hardDisk = new HardDiskInfo

{

DeviceID = values[0],

Model = values[1],

SerialNumber = values[2],

Size = long.Parse(values[3].Replace("GB", ""))102410241024,

FreeSpace = long.Parse(values[4].Replace("GB", ""))102410241024

};

hardDisks.Add(hardDisk);

}

return hardDisks;

}

public static void Main()

{

List hardDisks = GetHardDiskInfos();

foreach (var hardDisk in hardDisks)

{

Console.WriteLine($"DeviceID: {hardDisk.DeviceID}, Model: {hardDisk.Model}, SerialNumber: {hardDisk.SerialNumber}, Size: {hardDisk.Size}, FreeSpace: {hardDisk.FreeSpace}");

}

}

}

```

运行上述代码,你将看到控制台输出每个硬盘的信息,包括设备ID、型号、序列号、总大小和可用空间。这样,你就可以在 .NET 应用程序中获取电脑硬盘的相关信息了。