特定のパーティションを保持している物理ディスクをプログラムで見つける方法を知っている人はいますか? 手動で、 Start->Run->diskmgmt.msc を使用してこの情報を見つけることができます。ここで、(私のコンピューターで) パーティション C: と D: がディスク 1 にあり、E: と F: がディスク 0 にあることがわかります。
これは、ファイルが異なる物理ディスク上にある場合に、一部のファイル クランチ操作を並行して実行することで最適化するためです。
特定のパーティションを保持している物理ディスクをプログラムで見つける方法を知っている人はいますか? 手動で、 Start->Run->diskmgmt.msc を使用してこの情報を見つけることができます。ここで、(私のコンピューターで) パーティション C: と D: がディスク 1 にあり、E: と F: がディスク 0 にあることがわかります。
これは、ファイルが異なる物理ディスク上にある場合に、一部のファイル クランチ操作を並行して実行することで最適化するためです。
Win32_DiskDriveクラスを照会することにより、System.Management 名前空間から WMI を使用してこの情報を取得できます。
ここでは、.NET の WMI に関する基本情報を示します。
HKEY_LOCAL_MACHINE \ SYSTEM\MountedDevicesを参照してください
wmic path CIM_BasedOn get * > wmic-path-CIM_BasedOn-get.txt
wmic path CIM_DiskPartition get * > wmic-path-CIM_DiskPartition-get.txt
wmic path CIM_StorageExtent get * > wmic-path-CIM_StorageExtent-get.txt
クラスを参照してください:CIM_BasedOn-非列挙型の非表示パーティション、CIM_DiskPartition -all、ただしディスクラベルは表示されません、CIM_StorageExtent-GUID、ラベル、パーティション(非表示も)
Arulの回答に加えて、VBSスクリプトからWMIを使用してディスク<->パーティションの関連付けを取得する方法を示すリンクがあります:WMIタスク:ディスクとファイルシステム ->ページの最後の例を参照してください。
編集:さらに良いことに、 C#を使用したWMIに関する優れた記事\\\\.\\PHYSICALDRIVE0
があります。これは、論理ディスク(eg)を保持するC:
ディスクドライブ(eg)を取得するために必要なWMIクラス間の正確な関係についても説明しています。
パーティションが 1 つのディスクのみに関連付けられていますか? 複数の物理ディスクにまたがってストライプ化/スパン化/などすることができます。