¿Cómo saber si existe un archivo en C # / .NET?

186

Me gustaría probar una cadena que contiene una ruta a un archivo para la existencia de ese archivo (algo así como la -eprueba en Perl o os.path.exists()en Python) en C #.

Daren Thomas
fuente

Respuestas:

303

Utilizar:

File.Exists(path)

MSDN: http://msdn.microsoft.com/en-us/library/system.io.file.exists.aspx

Editar: en System.IO

Daniel Jennings
fuente
14
File.Exists (ruta) devuelve falso incluso si el archivo existe PERO la persona que llama no tiene permiso para leerlo. ¿Hay una forma diferente de manejar este tipo de situaciones y verificar si existe un archivo incluso si la persona que llama no puede leerlo?
ADTC
3
@ADTC: desde el punto de vista de la seguridad, parece normal que funcione de esa manera, desde el punto de vista del desarrollador, puede complicar las cosas. ¿Obtiene una excepción en ese caso si intenta crear un archivo?
user276648
2
@ADTC acaba de tropezar y pensé que podría mencionar los directorios desplegables. Esos se pueden configurar donde tiene permiso de creación o escritura pero sin permiso de lectura. No es que sea relevante para esta pregunta directamente, solo que no son tan extraños como uno podría pensar.
Ukko
1
Nota al margen: File.Exists devuelve False en Google Drive File Stream G: drive, si la carcasa de la ruta no coincide exactamente con lo que realmente está en G :. Por lo general, en cualquier carcasa de unidad física no importa, así que me pregunto, ¿hay algo mal con el método Exists?
CTZStef
1
@CTZStef esa es la peculiaridad de la unidad virtual de Google en lugar del método de marco.
Devolución de llamada de Eugene Mayevski el
53

System.IO.File :

using System.IO;

if (File.Exists(path)) 
{
    Console.WriteLine("file exists");
} 
Peter Hoffmann
fuente
25

System.IO.File.Exists (ruta)

msdn

pirho
fuente
4

Dar ruta completa como entrada. Evitar caminos relativos.

 return File.Exists(FinalPath);
shivi
fuente