Índice
0. Introducción1. Problema
2. Solución
3. Discusión de la Solución
4. Práctica: Código C#
5. Conclusiones
6. Glosario
7. Literatura & Enlaces
0. Introducción
Quizás una de las tareas más básicas y comunes consiste en determinar si una ruta pasada a un programa de manipulación de archivos y directorios corresponde ya sea con un archivo o un directorio. En esta receta vamos a aprender a llevar a cabo esta tarea con dos clases disponibles en System.IO: Directory y File.
1. Problema
Construir una aplicación basada en consola para determinar si un conjunto de rutas pasadas como argumentos corresponden con un directorio o un archivo.
2. Solución
Las clases Directory y File cuentan con el método static Exists para comprobar si una cadena de caracteres pasada como argumento es un archivo o un directorio, respectivamente.
3. Discusión de la Solución
Lo que en realidad se logra con el método Exists de las clases Directory [2] y File [3] es determinar si el directorio o el archivo existen, respectivamente; y de forma implícita determinar si es un directorio (si existe) o un archivo (si existe).
Una de las ventajas interesantes de este método es que funciona ya sea para una ruta relativa o absoluta; e inclusive, facilita la determinación de un recurso en una unidad compartida en la red (ruta que es especificada bajo la representación UNC [4]) [1].
4. Práctica: Código C#
Creemos una aplicación en lenguaje de programación C# para permitir al usuario pasar un conjunto de cadenas de caracteres de rutas de archivos o directorios son archivos o directorios y determinar si corresponden con directorios o archivos, o finalmente informar que la ruta no existe.
Por cada argumento pasado desde la línea de comandos (líneas 16-32) validamos con los métodos Directory.Exists(string) (línea 20) y File.Exists(string) si se trata de un directorio o un archivo, respectivamente. Cuando ninguna de las dos condiciones anteriores se cumple, el programa muestra un mensaje advirtiendo al usuario que el elemento actual (ruta) no existe (línea 30).
Compilación:
- csc /target:exe ComprobacionRutas.cs
Ejecución assembly:
- .\ComprobacionRutas.exe
> Prueba de ejecución:
Figura 1. Ejecución assembly ComprobacionRutas.exe. |
5. Conclusiones
Hemos aprendido que con el método Exists podemos comprobar si una ruta es un archivo o un directorio; desde luego, para ello hay que invocarlo desde la clase que corresponda: Directory o File.
En la próxima receta C# estudiáremos cómo trabajar con rutas relativas.
6. Glosario
- Archivo
- Clase
- Directorio
- Método static
- Ruta
7. Literatura & Enlaces
[1]: Visual C# 2010 Recipes by Allen Jones and Adam Freeman. Copyright 2010 Allen Jones and Adam Freeman, 978-1-4302-2525-6.[2]: Directory.Exists Method (System.IO) - https://msdn.microsoft.com/en-us/library/system.io.directory.exists(v=vs.110).aspx
[3]: File.Exists Method (System.IO) - https://msdn.microsoft.com/en-us/library/system.io.file.exists(v=vs.110).aspx
[4]: Uniform Naming Convention - https://en.wikipedia.org/wiki/Path_(computing)#Uniform_Naming_Convention
M
No hay comentarios:
Publicar un comentario
Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.