{}
run-icon
main.cpp
#include <iostream> #include <filesystem> #include <fstream> #include <string> namespace fs = std::filesystem; // Funkcja sprawdzająca, czy plik zawiera dany ciąg znaków bool containsString(const fs::path& filePath, const std::string& searchString) { std::ifstream file(filePath); if (!file) return false; // Nie udało się otworzyć pliku std::string line; while (std::getline(file, line)) { if (line.find(searchString) != std::string::npos) { return true; } } return false; } // Funkcja przeszukująca foldery i podfoldery void searchFiles(const fs::path& directory, const std::string& searchString) { try { for (const auto& entry : fs::recursive_directory_iterator(directory)) { if (entry.is_regular_file()) { // Sprawdzamy tylko pliki if (containsString(entry.path(), searchString)) { std::cout << "Znaleziono w pliku: " << entry.path() << '\n'; } } } } catch (const std::exception& e) { std::cerr << "Błąd: " << e.what() << '\n'; } } int main() { std::string folderPath, searchString; std::cout << "Podaj ścieżkę do folderu: "; std::getline(std::cin, folderPath); std::cout << "Podaj szukany ciąg znaków: "; std::getline(std::cin, searchString); if (!fs::exists(folderPath) || !fs::is_directory(folderPath)) { std::cerr << "Podana ścieżka nie istnieje lub nie jest folderem." << std::endl; return 1; } searchFiles(folderPath, searchString); return 0; }
Output