2011-08-28 84 views

回答

2

DriveInfo類公開了一種獲取所有可用驅動器的方法(GetDrives),您可以枚舉這些匹配給定的字符串。像下面的內容應該可以幫助你那裏:

DirectoryInfo root; 
var drives = DriveInfo.GetDrives(); 
foreach (var drive in drives) 
{ 
    if (drive.VolumeLabel == label) 
    { 
     root = drive.RootDirectory; 
     break; 
    } 
} 

正如abatishchev提到了,最初沒有詳細闡述了由於我的孩子們的時間要求,所以存在一個潛在的問題,你只打算符合其中有該標籤的第一驅動,因此,你需要在你的邏輯考慮到這一點,如果你的系統需要它(不過,確定這兩個驅動器是基於什麼,但非唯一的字符串所需的驅動器沒有比猜測更好,或者正如我在下面提到的那樣,詢問用戶(如果是輸入的話)他們意味着哪一個。)

+0

這不是'GetPathRoot()'的作用。 OP正在討論如何找到與卷標相對應的驅動器盤符。 – cdhowie

+0

@cdhowie:剛剛意識到......我的錯誤。 –

+0

但是如果多於一個驅動器具有相同的標籤呢? – abatishchev

2

您可以遍歷所有驅動器並檢查Name和VolumeLabel properties of DriveInfo object

見代碼示例這個問題(用來獲取USB驅動器盤符,但你可以輕鬆適應它):

How to find USB drive letter?

對不起,我不能爲你提供了一些代碼,但我在一個Mac現在:)

+0

但是如果多於一個驅動器具有相同的標籤呢? – abatishchev