Este sitio web usa cookies de terceros para analizar el tráfico y personalizar los anuncios. Si no está de acuerdo, abandone el sitio y no siga navegando por él. ×


8.6. Saber si un fichero existe

Hasta ahora, estamos intentando abrir ficheros para lectura, pero sin comprobar realmente si el fichero existe o no, lo que puede suponer que nuestro programa falle en caso de que el fichero no se encuentre donde nosotros esperamos o de que introduzcamos un nombre incorrecto.

Una primera solución es usar "File.Exists(nombre)", para comprobar si está, antes de intentar abrirlo:

// Ejemplo_08_06a.cs
// Saber si un fichero existe
// Introducción a C#, por Nacho Cabanes

using System;
using System.IO;

public class Ejemplo_08_06a
{
    public static void Main()
    {
        StreamReader fichero;
        string nombre;

        while (true) // Interrumpimos desde dentro con "break"
        {
            Console.Write( "Nombre del fichero (\"fin\" para terminar)? ");
            nombre = Console.ReadLine();
            if (nombre == "fin") 
                break;
            if ( File.Exists(nombre) )
            {
                fichero = File.OpenText( nombre );
                Console.WriteLine("Su primera linea es: {0}",
                fichero.ReadLine() );
                fichero.Close();    
            }
            else
                Console.WriteLine( "No existe!" );
        }
    }
}

Ejercicios propuestos:

Ejercicio propuesto 8.6.1: Mejora el ejercicio 8.3.4 para que compruebe antes si el fichero existe, y muestre un mensaje de aviso en caso de que no sea así.
Ejercicio propuesto 8.6.2: Mejora el ejemplo 08_06a para que no use "while (true)", sino una variable booleana de control.

Otra forma de comprobar si un fichero existe o no es usar "excepciones", con las que ya nos habíamos encontrado en el tema 3 y que veremos con más detalle en el próximo apartado.