C# 填充可用于映射的驱动器列表
我的应用程序需要用可用于映射的驱动器号列表填充一个组合框。DriveInfo类提供系统中所有驱动器名称的列表。我想知道是否有一个api公开了可用于映射的驱动器列表。鉴于可用驱动器字母只是字母表中的所有字母,您是否可以这样做:C# 填充可用于映射的驱动器列表,c#,mapped-drive,C#,Mapped Drive,我的应用程序需要用可用于映射的驱动器号列表填充一个组合框。DriveInfo类提供系统中所有驱动器名称的列表。我想知道是否有一个api公开了可用于映射的驱动器列表。鉴于可用驱动器字母只是字母表中的所有字母,您是否可以这样做: public char[] getAvailableDriveLetters() { List<char> availableDriveLetters = new List<char>() { 'a', 'b', 'c
public char[] getAvailableDriveLetters()
{
List<char> availableDriveLetters = new List<char>() { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
DriveInfo[] drives = DriveInfo.GetDrives();
for (int i = 0; i < drives.Length; i++)
{
availableDriveLetters.Remove((drives[i].Name).ToLower()[0]);
}
return availableDriveLetters.ToArray();
}
然后availableDriveLetters变量将包含用于映射驱动器的剩余字母-您也可以在初始化可用字母列表时排除常用字母,例如-“a”、“b”、“c”、“d”。下面的部分将为您提供映射可用驱动器字母的列表
Enumerable.Range('A', 'Z' - 'A' + 1).Select(i => (Char)i +":")
.Except(DriveInfo.GetDrives().Select(s=>s.Name.Replace("\\","")))
下面是已使用驱动器的列表
DriveInfo.GetDrives().Select(s=>s.Name.Replace("\\",""))