Как я могу проверить на С#, если конкретный путь является каталогом?
Является ли путь каталогом?
Ответ 1
Попробуйте выполнить
bool isDir = Directory.Exists(somePath)
Обратите внимание, что это действительно не говорит вам, существует ли каталог. Он сообщает вам, что в какой-то момент недавнего прошлого существовал каталог, для которого текущий процесс имел определенный доступ. К тому моменту, когда вы попытаетесь получить доступ к каталогу, он уже может быть удален или изменен каким-либо образом, чтобы ваш процесс не обращался к нему.
Короче говоря, вполне возможно, что вторая строка завершится неудачей, потому что каталог не существует.
if ( Directory.Exists(somePath) ) {
var files = Directory.GetFiles(somePath);
}
Я написал запись в блоге по этому вопросу в последнее время, стоит прочитать, если вы используете такие методы, как Directory.Exists, чтобы принять решение.
Ответ 2
Вы также можете сделать:
FileAttributes attr = File.GetAttributes(@"c:\Path\To\Somewhere");
if((attr & FileAttributes.Directory) == FileAttributes.Directory)
{
//it a directory
}
Ответ 3
Вы также можете проверить атрибуты файла с помощью File.GetAttributes() (конечно, только если файл/каталог существует). Тип FileAttributes имеет значение с именем "Directory", которое указывает, является ли путь каталогом.
Ответ 4
Если путь существует, вы можете использовать: Directory.Exists, чтобы указать, является ли это файлом или каталогом.
bool existsAndIsDirectory = Directory.Exists(path);
Если путь не существует, то нет способа определить, является ли путь файлом или каталогом, потому что он может быть.