C#에서 주어진 파티션을 보유하는 디스크를 찾는 방법은 무엇입니까?
-
08-07-2019 - |
문제
어떤 물리적 디스크가 주어진 파티션을 보유하는지 프로그래밍 방식으로 찾는 방법을 아는 사람이 있습니까? 수동으로 START-> run-> diskmgmt.msc를 사용 하여이 정보를 찾을 수 있습니다. 여기서 (내 컴퓨터에서) 파티션 C : 및 D : DISK 1, e : & f : on Disk 0이라는 것을 알 수 있습니다.
파일이 다른 물리적 디스크에있는 경우 일부 파일 크 런칭 작업을 병렬로 수행하여 작업을 최적화하기위한 것입니다.
해결책
System.Management Namespace에서 WMI를 사용 하여이 정보를 얻을 수 있습니다. Win32_DiskDrive 수업.
여기에 있습니다 .NET의 WMI에 대한 기본 정보.
다른 팁
Arul의 답변 외에도 VBS 스크립트에서 WMI를 사용하여 디스크 <-> 파티션 협회를 Geth하는 방법을 보여주는 링크가 있습니다. WMI 작업 : 디스크 및 파일 시스템-> 페이지의 마지막 예제를 참조하십시오.
편집 : 더 나은 것, 여기에 좋은 기사가 있습니다 C#을 사용하는 WMI에서는 디스크 드라이브를 얻는 데 필요한 WMI 클래스 간의 정확한 관계를 설명합니다 (예 : \\\\.\\PHYSICALDRIVE0
) 논리적 디스크를 보유하고 있습니다 (예 : C:
)
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- HIDEN PARTITION, CIM_DISKPARTITION -ALL이지만 디스크 레이블, CIM_STORAGEEXTENT -GUID, 레이블, 파티션 (숨기기)을 참조하십시오.
파티션이 단 하나의 디스크와 관련이 있습니까? 여러 물리적 디스크에서 줄무늬/스파이닝/등이있을 수 있습니다.