c# - 我应该如何使用C#读取分区表/引导扇区?

标签 c#

嗨,我查看了 WMI 类...但没有人可以帮助我获取分区表信息...现在我有一个项目要显示 USB 拇指驱动器的 .MBR 我应该如何处理它?真的很困惑...任何帮助和指导将非常感谢!

附:代码只能用C#编写

编辑

谢谢!我浏览过 CreateFile 文档...仍然想知道如何使用 P/Invoke 调用 CreateFile 并读取引导扇区(显示 .MBR )?您有这部分的引用代码吗?再次感谢您!!

最佳答案

如果您愿意,可以使用 WMI 获取有关任何驱动器的信息。为此,您需要查询相应的 WMI 类。对于 C#,您必须添加这些引用:

System.Management

和使用语句:

using System.Management;

要获取连接到您计算机的磁盘信息,您可以使用以下查询:

Select * From Win32_DiskDrive

使用 C#,您可以这样查询:

SelectQuery wmi_sorgusu = new SelectQuery("Select * from Win32_DiskDrive");
ManagementObjectSearcher wmi_bulucu = new ManagementObjectSearcher( wmi_sorgusu );

foreach (ManagementObject wmi_nesne in wmi_bulucu.Get()) {
    Console.WriteLine(wmi_nesne.GetPropertyValue( "DeviceID" ).ToString());
    Console.WriteLine(wmi_nesne.GetPropertyValue( "InterfaceType" ).ToString());
    Console.WriteLine(wmi_nesne.GetPropertyValue( "Caption" ).ToString());
    Console.WriteLine(wmi_nesne.GetPropertyValue( "Status" ).ToString());
    Console.WriteLine(wmi_nesne.GetPropertyValue( "MediaLoaded" ).ToString());
    //... etc
}

获取设备参数后,可以使用同样的方法查询Win32_DiskPartition WMI Class。您可以将设备参数作为 WHERE 子句提供给 SELECT 查询。对 Win32_DiskPartition 的查询返回连接到系统的所有驱动器的所有分区。

关于c# - 我应该如何使用C#读取分区表/引导扇区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/411304/

相关文章:

c# - 从 C# 解密 AES,从 Java 加密

c# - 通过 Visual Studio 运行应用程序时出现“访问冲突”

c# - 未处理的异常。 System.ArgumentNullException : Value cannot be null.(参数 'path1' )在 System.IO.Path.Combine(字符串路径1,字符串路径2)

c# - ASP.Net MVC4 自定义路由

c# - "The type or namespace name ' 使用 ' could not be found"路由 "attribute routing"

c# - 这是使用 Xamarin Forms 和 SQLite 建立数据库连接的完美方式吗?

c# - 使用什么架构进行广泛搜索

c# - 使用回调从 Inno Setup 调用 C# DLL

c# - 在 C# 中通过远程处理获取外部 IP 地址

c# - 我可以更改测试中所有垫片的默认行为吗