Ejercicio: Crear archivos y directorios

Completado

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

  1. En el archivo Program.cs, quite el bucle foreach que recorre en iteración y escribe cada nombre de archivo devuelto por la función FindFiles en la salida de la consola. Este cambio da como resultado que la variable salesFilesno se utilice. Sin embargo, lo dejaremos aquí por ahora porque lo usaremos nuevamente en una lección futura.

  2. En el archivo Program.cs, cree una variable denominada salesTotalDir, 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);
    
  3. 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

  1. 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);
    
  2. Presione Ctrl+S / Cmd+S para guardar el archivo.

  3. Ejecute el código siguiente desde el símbolo del sistema de terminal para ejecutar el programa:

    dotnet run
    
  4. Seleccione el icono Actualización en el Explorador de archivos.

    Captura de pantalla del icono Actualización en el Explorador de archivos del editor de Cloud Shell.

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;
}