4

Windowsでサポートされていないファイルシステム用にC#でユーティリティを作成しています。つまり、ドライブにアクセスするだけでは不十分です。ハードディスク上のすべてのパーティションを一覧表示し、それらを書き込み/フォーマットする方法が必要です。

4

2 に答える 2

8

ディスクパーティションを一覧表示するには、WMIを使用できます。

var searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_DiskPartition");

foreach (var queryObj in searcher.Get())
{
    Console.WriteLine("-----------------------------------");
    Console.WriteLine("Win32_DiskPartition instance");
    Console.WriteLine("Name:{0}", (string)queryObj["Name"]);
    Console.WriteLine("Index:{0}", (uint)queryObj["Index"]);
    Console.WriteLine("DiskIndex:{0}", (uint)queryObj["DiskIndex"]);
    Console.WriteLine("BootPartition:{0}", (bool)queryObj["BootPartition"]);
}
于 2011-07-04T20:32:50.183 に答える
1

次のアプローチを使用して、ディスクのパーティションがマウントされているボリュームまたはDriveLetterを取得できます。

  1. Win32_LogicalDiskToPartition
  2. Win32_DiskDrive

Win32_DiskDriveクラスから、DriveNumberプロパティをクエリするか、 from属性をIndex抽出することでを取得できます。次に、クエリとから 。値には、ディスク番号とボリュームをマップしようとしているパーティションが表示されます。その後、プロパティから「C:」、「D:」などを抽出します。したがって、このロジックを使用することで、特定のにマウントすることができます。コンポーネントでこのロジックを使用して、システム上の特定のハードドライブの名前(「C:」、「D:」など)を取得しています。DriveNumberNameAntecedentDependentWin32_LogicalDiskToPartitionAntecedentDriveLetterDependentLogicalDrivesHardDiskLogicalDrive

于 2015-02-03T06:40:24.530 に答える