Как определить, может ли данная строка пути представлять диск в текущей среде? - PullRequest
0 голосов
/ 09 октября 2018

Я работаю со строками пути к файлам и каталогам в коде C #, который может быть запущен в .NET или в Mono.

Я хотел бы определить, может ли данная строка пути быть диском (независимо от того,фактический диск сопоставлен с этим путем в текущей системе).

Например, рассмотрим строку "m:".В некоторых средах, таких как Windows, это обозначает диск, тогда как в других средах это может быть обычное имя каталога.

Если я не хочу жестко кодировать проверку операционной системы 1 , как я могу узнать, что (wlog) "m:" обозначает диск в Windows (и предпочтительно даже узнать, что этот диск на самом деле называется "m")?

1 : Очевидно, что этот вид проверки обречен на неудачу.

1 Ответ

0 голосов
/ 09 октября 2018

А как насчет Directory.Exists (String) Method в сочетании с Path.GetPathRoot Method ?

string drive = Path.GetPathRoot(FileLocation.Text);   // e.g. K:\

if (!Directory.Exists(drive))
{
     MessageBox.Show("Drive " + drive + " not found or inaccessible", 
                     "Error", MessageBoxButton.OK);
     return;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...