2009-12-13 14 views

Respuesta

36

intente lo siguiente

bool isDir = Directory.Exists(somePath) 

Tenga en cuenta que esto no significa realmente le dirá si existe un directorio sin embargo. Le dice que existió un directorio en algún momento del pasado reciente al cual el proceso actual tenía alguna medida de acceso. En el momento en que intente acceder al directorio, ya podría eliminarse o modificarse de alguna manera para evitar que su proceso acceda a él.

En resumen, es perfectamente posible que la segunda línea falle porque el directorio no existe.

if (Directory.Exists(somePath)) { 
    var files = Directory.GetFiles(somePath); 
} 

me escribió una entrada de blog sobre este tema recientemente es digno de una lectura si está utilizando métodos como Directory.Exists para tomar una decisión

6

Si existe la ruta, puede usar: Directory.Exists para indicar si se trata de un archivo o directorio.

bool existsAndIsDirectory = Directory.Exists(path); 

Si no existe el camino, entonces no hay manera de saber si el camino es un archivo o un directorio, ya que podría ser.

29

También puede hacer :

FileAttributes attr = File.GetAttributes(@"c:\Path\To\Somewhere"); 
if((attr & FileAttributes.Directory) == FileAttributes.Directory) 
{ 
    //it's a directory 
} 
+1

¡esta es la respuesta en realidad! – nawfal

7

También puede buscar el archivo att ributes por File.GetAttributes() (por supuesto, solo si el archivo/directorio existe). El tipo FileAttributes tiene un valor denominado Directory que indica si la ruta es un directorio.

Cuestiones relacionadas