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.