2010-12-16 219 views
1

因此,例如,如果我有驅動器Z:NetworkDrive,映射到另一臺服務器上的共享文件夾,並且我想返回volumelabel「NetworkDrive」。下面的代碼似乎工作:如何在C#中獲得網絡映射驅動器VolumeLabel?

foreach (DriveInfo drive in drives) 
      { 
       if (drive.DriveType == DriveType.Network) 
        mappedDrivesNames.Add(drive.VolumeLabel); 
      } 

但它返回服務器上的列表中的第一個共享文件夾的名稱。任何想法,爲什麼會發生?

+0

有趣的問題。 「網絡驅動器」不是驅動器的標籤。 Windows資源管理器將「網絡驅動器」顯示爲驅動器的類型。在命令框中,'label z:'命令將顯示驅動器連接的卷的實際標籤。 – comecme 2010-12-16 08:35:24

回答

0

如果我只是代碼

var drive = new DriveInfo("Z"); 
Console.WriteLine(drive.VolumeLabel); 

它向我展示卷的標籤的網絡共享上。我有我的驅動器Z:連接到Windows XP計算機上的共享,共享位於NTFS格式的驅動器上。如果我刪除該卷的標籤,程序將輸出一個空行。

我不知道如果共享位於Linux機器上,預期結果應該如何。我不知道Linux是否有像Label這樣的東西,但我不這麼認爲。

0

我不太清楚你是否仍然需要的信息,但我發現在這個線程一些答案: Get drive label in C#