C#에서 주어진 파티션을 보유하는 디스크를 찾는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/300089

  •  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, 레이블, 파티션 (숨기기)을 참조하십시오.

파티션이 단 하나의 디스크와 관련이 있습니까? 여러 물리적 디스크에서 줄무늬/스파이닝/등이있을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top