Проверьте, является ли папка локальным или сетевым ресурсом в.NET

Существует ли быстрый способ проверить, является ли путь, который я имею, на локальном диске или где-нибудь в сети? Я не могу только проверить, чтобы видеть, является ли это буква диска по сравнению с UNC, потому что это неправильно идентифицировало бы сетевые диски как локальные. Я предположил, что это будет булевская переменная в объекте DirectoryInfo, но кажется, что это не.

Я нашел, что классический код VB делает эту проверку (через API), но ничто для.NET до сих пор.

5
задан SqlRyan 16 March 2010 в 14:50
поделиться

3 ответа

                System.IO.DirectoryInfo di;
                if (System.IO.Path.IsPathRooted(di.FullName))
                {
                    System.IO.DriveInfo drive = new System.IO.DriveInfo(System.IO.Path.GetPathRoot(di.FullName));
                    if (drive.DriveType == System.IO.DriveType.Network)
                    {
                        // do something
                    }
                }
                else // shouldn't be reached
                {
                    // relative path => local
                }
6
ответ дан 14 December 2019 в 08:48
поделиться

Вы можете начать с проверки UNC. Затем, если это не UNC-путь, создайте объект DriveInfo для диска и проверьте DriveType.

1
ответ дан 14 December 2019 в 08:48
поделиться

Из буквы диска в пути получите экземпляр DriveInfo. Он имеет свойство DriveType, которое может быть: CDRom, Fixed, Unknown, Network, NoRootDirectory, Ram, Removable или Unknown

0
ответ дан 14 December 2019 в 08:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: