AnteriorPosterior

8.6. Saber si un fichero existe

  Curso: Programación en C# (2015), por Nacho Cabanes

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.

Actualizado el: 22-03-2015 16:58

AnteriorPosterior