如何在C#中获得网络映射驱动器VolumeLabel?

如何在C#中获得网络映射驱动器VolumeLabel?

问题描述:

因此,例如,如果我有驱动器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

如果我只是代码

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

它向我展示卷的标签的网络共享上。我有我的驱动器Z:连接到Windows XP计算机上的共享,共享位于NTFS格式的驱动器上。如果我删除该卷的标签,程序将输出一个空行。

我不知道如果共享位于Linux机器上,预期结果应该如何。我不知道Linux是否有像Label这样的东西,但我不这么认为。

我不太清楚你是否仍然需要的信息,但我发现在这个线程一些答案: Get drive label in C#