2011-08-28 5 views

답변

2

DriveInfo 클래스는 사용 가능한 모든 드라이브 (GetDrives)를 가져 오는 방법을 제공하므로 주어진 문자열과 일치하는 문자열을 열거 할 수 있습니다.

abatishchev 언급하고, 처음에 아이들의 시간 요구 사항 때문에 정교하지으로
DirectoryInfo root; 
var drives = DriveInfo.GetDrives(); 
foreach (var drive in drives) 
{ 
    if (drive.VolumeLabel == label) 
    { 
     root = drive.RootDirectory; 
     break; 
    } 
} 

, 당신은 거 야한다는 점에서 잠재적 인 문제가 다음과 같은 뭔가가 당신을 얻을 수 있도록한다고 해당 레이블이있는 첫 번째 드라이브와 일치해야합니다. 따라서 시스템에서 필요하면 로직을 고려해야합니다 (단, 두 드라이브 중 어느 것이 원하는 드라이브가 아닌 고유 한 문자열을 기반으로하는지 확인) 추측보다 낫지 않거나 아래에서 언급 한 것처럼 사용자에게 이것이 무엇인지 의미하는 것을 묻습니다.

+0

그것은'GetPathRoot()'이하는 것이 아닙니다. OP는 볼륨 레이블에 해당하는 드라이브 문자를 찾는 것을 말합니다. – cdhowie

+0

@cdhowie : 그냥 실현 ... 내 실수. –

+0

그러나 하나 이상의 드라이브에 동일한 레이블이 있으면 어떻게됩니까? – abatishchev

2

모든 드라이브를 순회하고 이름과 볼륨 레이블 properties of DriveInfo object을 확인할 수 있습니다.

코드 예제에 대한이 질문을 참조하십시오 (USB 드라이브 문자를 가져 오는 데 사용,하지만 당신은 쉽게 적응할 수) :

How to find USB drive letter?

미안 내가 당신에게 몇 가지 코드를 제공 할 수 없습니다,하지만 난에있어 Mac 지금 :)

+0

그러나 하나 이상의 드라이브에 동일한 레이블이 있으면 어떻게됩니까? – abatishchev