2009-02-12 7 views
10

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

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

ответ

28

Для файла

File.Exists(string) 

Для каталога

Directory.Exists(string) 

ПРИМЕЧАНИЕ: Если вы повторно объект, который следует использовать класс FileInfo против статического класса File. Статические методы класса File делают возможную ненужную проверку безопасности каждый раз.
FileInfo - DirectoryInfo - File - Directory

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

ИЛИ

DirectoryInfo di = new DirectoryInfo(fName); 
if (di.Exists) 
    //Do stuff 
9
if(System.IO.File.Exists(fileOrDirectoryPath)) 
{ 
    //do stuff 
} 

Это должно сделать трюк!

+0

Обновлено - я неправильно вспомнил пространство имен. – xan

0

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

2

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

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

2

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