Este programa permite buscar archivos dentro de un directorio (y sus subdirectorios) usando una palabra clave en el nombre del archivo.
Requisitos
- C++17 o superior (usa
<filesystem>) - Compilador moderno como g++ 8+, MSVC o Clang
#include <iostream>
#include <filesystem>
#include <string>
namespace fs = std::filesystem;
void buscarArchivos(const fs::path& ruta, const std::string& nombreBuscado) {
try {
for (const auto& entrada : fs::recursive_directory_iterator(ruta)) {
if (entrada.is_regular_file()) {
std::string nombreArchivo = entrada.path().filename().string();
if (nombreArchivo.find(nombreBuscado) != std::string::npos) {
std::cout << "Encontrado: " << entrada.path() << std::endl;
}
}
}
} catch (const fs::filesystem_error& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
}
int main() {
std::string ruta;
std::string nombreBuscado;
std::cout << "Ingrese la ruta donde desea buscar: ";
std::getline(std::cin, ruta);
std::cout << "Ingrese el nombre o parte del nombre del archivo a buscar: ";
std::getline(std::cin, nombreBuscado);
fs::path directorio(ruta);
if (fs::exists(directorio) && fs::is_directory(directorio)) {
buscarArchivos(directorio, nombreBuscado);
} else {
std::cerr << "La ruta especificada no es válida." << std::endl;
}
return 0;
}
