2009-02-12 13 views
10

¿Existe una función estándar para verificar que un directorio específico sea válido?C# compruebe que el destino de un archivo sea válido

La razón por la que pregunto es que estoy recibiendo una cadena de directorio absoluta y un nombre de archivo de un usuario y quiero verificar la ubicación para verificar que sea válida.

Respuesta

28

Para un archivo

File.Exists(string) 

para un directorio

Directory.Exists(string) 

NOTA: Si va a reutilizar un objeto que debe considerar el uso de la clase FileInfo contra la clase File estática. Los métodos estáticos de la clase File hacen una posible verificación de seguridad innecesaria cada vez.
FileInfo - DirectoryInfo - File - Directory

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

O

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

¡Esto debería hacer el truco!

+0

Actualizado: recordé incorrectamente el espacio de nombres. – xan

0

La respuesta anterior es correcta con respecto a comprobar si existe un archivo o directorio determinado. La clase Path también contiene una serie de funciones que son útiles para validar o manipular los diversos componentes de una ruta.

2

Si no puede ser un directorio nuevo, puede verificar si existe.

Parece que también podría usar Path.GetInvalidPathChars para comprobar si hay caracteres no válidos.

2

También podría considerar que una ruta válida en sí misma no es 100% válida. Si el usuario proporciona C: \ windows \ System32, o una unidad de CD, el sistema operativo podría arrojar una excepción al intentar escribir.

Cuestiones relacionadas