Ejercicio: Crear archivos y directorios
Las clases File
y Directory
de .NET permiten crear archivos y directorios mediante programación.
Hasta ahora, ha creado una aplicación de línea de comandos sólida en .NET que puede leer cualquier estructura de carpetas para encontrar archivos con la extensión .json. Ahora, tendrá que leer esos archivos para resumir los datos que contengan y, tras ello, escribir los totales en un archivo nuevo, dentro de un directorio nuevo llamado salesTotals.
En este ejercicio, crea el directorio salesTotalDir y el archivo totals.txt, donde se cotejan los totales de ventas.
Creación del directorio salesTotals
En el archivo
Program.cs
, quite el bucleforeach
que recorre en iteración y escribe cada nombre de archivo devuelto por la funciónFindFiles
en la salida de la consola. Este cambio da como resultado que la variablesalesFiles
no se utilice. Sin embargo, lo dejaremos aquí por ahora porque lo usaremos nuevamente en una lección futura.En el archivo
Program.cs
, cree una variable denominadasalesTotalDir
, que contiene la ruta de acceso del directorio salesTotalDir:var currentDirectory = Directory.GetCurrentDirectory(); var storesDirectory = Path.Combine(currentDirectory, "stores"); var salesTotalDir = Path.Combine(currentDirectory, "salesTotalDir"); var salesFiles = FindFiles(storesDirectory);
En el archivo
Program.cs
, agregue código para crear el directorio:var currentDirectory = Directory.GetCurrentDirectory(); var storesDirectory = Path.Combine(currentDirectory, "stores"); var salesTotalDir = Path.Combine(currentDirectory, "salesTotalDir"); Directory.CreateDirectory(salesTotalDir); // Add this line of code var salesFiles = FindFiles(storesDirectory);
Escritura del archivo totals.txt
En el archivo
Program.cs
, agregue el código para crear un archivo vacío denominado totals.txt en el directorio salesTotalDir recién creado. Por el momento, use una cadena vacía para el contenido del archivo:var currentDirectory = Directory.GetCurrentDirectory(); var storesDirectory = Path.Combine(currentDirectory, "stores"); var salesTotalDir = Path.Combine(currentDirectory, "salesTotalDir"); Directory.CreateDirectory(salesTotalDir); var salesFiles = FindFiles(storesDirectory); File.WriteAllText(Path.Combine(salesTotalDir, "totals.txt"), String.Empty);
Presione Ctrl+S / Cmd+S para guardar el archivo.
Ejecute el código siguiente desde el símbolo del sistema de terminal para ejecutar el programa:
dotnet run
Seleccione el icono Actualización en el Explorador de archivos.
Casi hemos acabado. El último paso es leer los archivos de ventas, sumar los totales y escribir el total general en el nuevo archivo totals.txt. Después, obtendrá información sobre cómo leer y analizar los datos dentro de los archivos.
¿Se ha bloqueado?
Si se ha bloqueado durante este ejercicio, este es el código completo hasta el momento:
var currentDirectory = Directory.GetCurrentDirectory();
var storesDirectory = Path.Combine(currentDirectory, "stores");
var salesTotalDir = Path.Combine(currentDirectory, "salesTotalDir");
Directory.CreateDirectory(salesTotalDir);
var salesFiles = FindFiles(storesDirectory);
File.WriteAllText(Path.Combine(salesTotalDir, "totals.txt"), String.Empty);
IEnumerable<string> FindFiles(string folderName)
{
List<string> salesFiles = new List<string>();
var foundFiles = Directory.EnumerateFiles(folderName, "*", SearchOption.AllDirectories);
foreach (var file in foundFiles)
{
var extension = Path.GetExtension(file);
if (extension == ".json")
{
salesFiles.Add(file);
}
}
return salesFiles;
}