Navegar Por El Directorio - Ejercicio De Programacion C# Sharp

En este ejercicio, debes crear un programa que muestre los archivos y carpetas en la carpeta actual y permita al usuario moverse hacia arriba y hacia abajo por la lista. Si el usuario presiona Enter sobre el nombre de una carpeta, accederá a esa carpeta. Si presiona Enter sobre un archivo, el archivo se abrirá. Este ejercicio te ayudará a trabajar con las operaciones de navegación de archivos y carpetas, manipulación de directorios y apertura de archivos desde una aplicación de consola, todo ello mediante el uso de entradas del usuario y manejo de eventos como la pulsación de teclas.

 Categoría

Bibliotecas Adicionales

 Ejercicio

Navegar Por El Directorio

 Objectivo

Cree un programa para mostrar los archivos en el directorio actual y para permitir que el usuario se mueva hacia arriba y hacia abajo en esa lista. Si el usuario presiona Intro en un nombre de directorio, ingresará ese directorio; si presiona Intro en un archivo, ese archivo se iniciará.

 Ejemplo Ejercicio C#

 Copiar Código C#
// Import necessary namespaces
using System;
using System.IO;
using System.Linq;

class SurfDirectory
{
    // Main method where the program execution starts
    static void Main()
    {
        string currentPath = Directory.GetCurrentDirectory(); // Start in the current directory
        NavigateDirectory(currentPath); // Call the method to start navigating
    }

    // Method to navigate through the directory
    static void NavigateDirectory(string path)
    {
        while (true)
        {
            // Get all directories and files in the current path
            var directories = Directory.GetDirectories(path);
            var files = Directory.GetFiles(path);

            // Display the list of directories and files
            Console.Clear();
            Console.WriteLine($"Current Directory: {path}");
            Console.WriteLine("Directories:");
            foreach (var directory in directories)
            {
                Console.WriteLine($"[DIR] {Path.GetFileName(directory)}");
            }

            Console.WriteLine("\nFiles:");
            foreach (var file in files)
            {
                Console.WriteLine($"[FILE] {Path.GetFileName(file)}");
            }

            // Ask for user input
            Console.WriteLine("\nEnter the name of the folder or file to open, or '..' to go up a level.");
            Console.Write("Your choice: ");
            string choice = Console.ReadLine();

            // Handle navigation
            if (choice == "..") // Go up to the parent directory
            {
                string parentDir = Directory.GetParent(path).FullName;
                if (Directory.Exists(parentDir))
                {
                    path = parentDir; // Change to parent directory
                }
            }
            else
            {
                // Check if the choice is a directory
                var selectedDirectory = directories.FirstOrDefault(d => Path.GetFileName(d) == choice);
                if (selectedDirectory != null)
                {
                    path = selectedDirectory; // Change to the selected directory
                }
                else
                {
                    // Check if the choice is a file
                    var selectedFile = files.FirstOrDefault(f => Path.GetFileName(f) == choice);
                    if (selectedFile != null)
                    {
                        // Open the file (just display the file contents here)
                        Console.Clear();
                        Console.WriteLine($"Opening file: {selectedFile}");
                        Console.WriteLine("\nFile contents:");
                        try
                        {
                            string fileContents = File.ReadAllText(selectedFile);
                            Console.WriteLine(fileContents);
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine($"Error reading file: {ex.Message}");
                        }

                        // Wait for user input before going back to the directory
                        Console.WriteLine("\nPress any key to go back to the directory...");
                        Console.ReadKey();
                    }
                    else
                    {
                        Console.WriteLine("Invalid choice, please try again.");
                    }
                }
            }
        }
    }
}

 Salida

Current Directory: C:\Users\YourUser\Documents
Directories:
[DIR] Folder1
[DIR] Folder2

Files:
[FILE] file1.txt
[FILE] file2.txt

Enter the name of the folder or file to open, or '..' to go up a level.
Your choice:

If an invalid choice is made (non-existent folder/file):
Invalid choice, please try again.

If the user selects a file to open:
Opening file: C:\Users\YourUser\Documents\file1.txt

File contents:
This is the content of file1.txt.

Press any key to go back to the directory...

If the user navigates up to the parent directory:
Current Directory: C:\Users\YourUser
Directories:
[DIR] Documents
[DIR] Downloads

Files:
[FILE] file3.txt

Enter the name of the folder or file to open, or '..' to go up a level.
Your choice:

If the user tries to open a non-existent file or folder:
Invalid choice, please try again.

 Comparte este Ejercicio C# Sharp

 Más Ejercicios de Programacion C# Sharp de Bibliotecas Adicionales

¡Explora nuestro conjunto de ejercicios de programación C# Sharp! Estos ejercicios, diseñados específicamente para principiantes, te ayudarán a desarrollar una sólida comprensión de los conceptos básicos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte de manera gradual a medida que adquieres confianza en la codificación en C#.

  •  Subdirectorios

    En este ejercicio, debes crear un programa que almacene los archivos localizados en una carpeta específica y sus subcarpetas. Luego, el programa debe pedir al usuario...

  •  Fecha y hora

    En este ejercicio, debes crear un programa que muestre la fecha y hora actual con el siguiente formato:"Hoy es 6 de febrero de 2015. Son las 03:23:12".

  •  Directorio de visualización

    En este ejercicio, deberás crear un programa que muestre todos los archivos presentes en la carpeta actual. El programa debe listar los archivos disponibles en el directorio...

  •  Mostrar archivos ejecutables en el directorio

    En este ejercicio, deberás crear un programa que muestre los nombres de todos los archivos ejecutables (.com, .exe, .bat, .cmd) en la carpeta actual, excluyendo la ruta comp...

  •  Fecha y hora continua

    En este ejercicio, se requiere crear un programa que muestre la hora actual en la esquina superior derecha de la pantalla con el formato "HH:mm:ss". El programa debe actuali...

  •  Creador de sitemaps

    En este ejercicio, se requiere crear un programa que muestre el contenido de un "sitemap" preliminar en la pantalla. El sitemap debe generarse a partir de una lista d...