Buscar Archivos Por Nombre En Carpetas Y Subcarpetas En C#

En este ejercicio, creará un programa que almacena los nombres de los archivos ubicados en una carpeta específica y sus subcarpetas. El programa solicitará al usuario que introduzca un texto de búsqueda. Mostrará todos los archivos que contengan dicho texto en sus nombres. El programa seguirá solicitando nuevos términos de búsqueda hasta que el usuario introduzca una cadena vacía, momento en el que finalizará.

Este programa le ayudará a practicar la navegación de archivos y directorios, la búsqueda de subcadenas dentro de los nombres de archivo y el manejo dinámico de la entrada del usuario. Utilizará la recursividad para buscar en todas las subcarpetas de la carpeta dada.



Grupo

Usando bibliotecas adicionales en C#

Objectivo

1. Utilice el método Directory.GetFiles() para recuperar los archivos de la carpeta especificada y sus subcarpetas.
2. Almacene los nombres de todos los archivos.
3. Solicite al usuario que introduzca una cadena de búsqueda.
4. Muestre todos los archivos que contengan la cadena de búsqueda en su nombre.
5. Repita el proceso hasta que el usuario introduzca una cadena vacía para detener el programa.
6. Asegúrese de gestionar excepciones como rutas no válidas o directorios inaccesibles.

Cree un programa para almacenar los archivos ubicados en una carpeta específica y sus subcarpetas. A continuación, le preguntará al usuario qué texto buscar y mostrará los archivos que contengan ese texto en su nombre. El programa finalizará cuando el usuario introduzca una cadena de búsqueda vacía.

Ejemplo de ejercicio en C#

 Copiar código C#
using System;  // For general system functions
using System.IO;  // For file and directory handling
using System.Linq;  // For LINQ to handle search operations

class Program
{
    static void Main()
    {
        // Ask the user to enter the folder path
        Console.Write("Enter the path of the folder: ");
        string folderPath = Console.ReadLine();

        // Validate the folder path
        if (!Directory.Exists(folderPath))
        {
            Console.WriteLine("The specified folder does not exist.");
            return;
        }

        // Get all files in the specified folder and its subfolders
        var files = GetFilesFromDirectory(folderPath);

        // Repeat the search process until the user enters an empty string
        while (true)
        {
            // Ask the user for the search term
            Console.Write("Enter text to search in file names (or press Enter to exit): ");
            string searchText = Console.ReadLine();

            // If the search text is empty, exit the program
            if (string.IsNullOrEmpty(searchText))
            {
                Console.WriteLine("Exiting program.");
                break;
            }

            // Find and display files that contain the search text in their name
            var matchingFiles = files.Where(file => file.IndexOf(searchText, StringComparison.OrdinalIgnoreCase) >= 0).ToList();

            if (matchingFiles.Any())
            {
                Console.WriteLine("Matching files:");
                foreach (var file in matchingFiles)
                {
                    Console.WriteLine(file);  // Display the file names
                }
            }
            else
            {
                Console.WriteLine("No files found with that search text.");
            }
        }
    }

    // Method to retrieve all files from the directory and its subdirectories
    static string[] GetFilesFromDirectory(string directoryPath)
    {
        // Get all files in the directory and its subdirectories recursively
        string[] files = Directory.GetFiles(directoryPath, "*", SearchOption.AllDirectories);

        return files;  // Return the list of files
    }
}

 Output

Enter the path of the folder: C:\Users\Example\Documents

Enter text to search in file names (or press Enter to exit): report
Matching files:
C:\Users\Example\Documents\Report_2023.txt
C:\Users\Example\Documents\AnnualReport_2023.txt

Enter text to search in file names (or press Enter to exit): summary
Matching files:
C:\Users\Example\Documents\Summary_2023.txt

Enter text to search in file names (or press Enter to exit): 

Exiting program.

Comparte este ejercicio de C#

Practica más ejercicios C# de Usando bibliotecas adicionales en C#

¡Explora nuestro conjunto de ejercicios de práctica de C#! Diseñados específicamente para principiantes, estos ejercicios te ayudarán a desarrollar una sólida comprensión de los fundamentos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte gradualmente a medida que adquieres confianza en la programación en C#..