C # проверить правильность назначения файла - PullRequest
10 голосов
/ 12 февраля 2009

Существует ли стандартная функция для проверки правильности указанного каталога?

Причина, по которой я спрашиваю, заключается в том, что я получаю от пользователя абсолютную строку каталога и имя файла, и я хочу проверить его правильность.

Ответы [ 5 ]

29 голосов
/ 12 февраля 2009

Для файла

File.Exists(string)

Для справочника

Directory.Exists(string)

Примечание: Если вы повторно используете объект, вам следует рассмотреть возможность использования класса FileInfo вместо статического класса File. Статические методы класса File каждый раз делают возможную ненужную проверку безопасности.
FileInfo - DirectoryInfo - Файл - Каталог

 FileInfo fi = new FileInfo(fName);
 if (fi.Exists)
    //Do stuff

OR

DirectoryInfo di = new DirectoryInfo(fName);
 if (di.Exists)
    //Do stuff
9 голосов
/ 12 февраля 2009
if(System.IO.File.Exists(fileOrDirectoryPath))
{
    //do stuff
}

Это должно сработать!

2 голосов
/ 20 февраля 2009

Возможно, вы также захотите учесть, что действительный путь сам по себе не является допустимым на 100%. Если пользователь указывает C: \ windows \ System32 или на дисковод компакт-дисков, операционная система может выдать исключение при попытке записи.

2 голосов
/ 12 февраля 2009

Если это не может быть новый каталог, вы можете просто проверить, существует ли он.

Похоже, вы также можете использовать Path.GetInvalidPathChars для проверки на недопустимые символы.

0 голосов
/ 12 февраля 2009

Предыдущий ответ верен в отношении проверки, существует ли данный файл или каталог. Класс Path также содержит ряд функций, которые полезны для проверки или манипулирования различными компонентами пути.

...