Witam. Próbuje zrobić program który przeszuka katalogi i wyszuka pliki zawierające w nazwie wprowadzoną zmienną a następnie skopiuje je do nowego folderu o nazwie tej zmiennej. Podpowie ktoś jak do tego się zabrać, bo nie wiem czy się nie porywa z motyką na słońce. Pozdrawiam.
0
0
No to nie jest trudne, podajesz ścieżkę i używasz dir = opendir("ścieżka") .
Odpalasz pętle w której wczytujesz wszystkie nazwy plików w tym folderze readdir(dir).
W każdej iteracji wywołujesz metode która sprawdza czy w nazwie jest napis jeżeli jest to wywołujesz inną metodę np copy_file(from,to,options).
0
C++17 ma std::filesystem
a tam jest recursive_directory_iterator.
0
Mam teraz coś takiego, filtr działa ale muszę wpisać w filtrze *(gwiazdka) przed i po szukanym słowie. Jak zrobić żeby tych * nie wpisywać :)
#include <iostream>
#include <vector>
#include <string>
#include <windows.h>
#include <io.h>
using namespace std;
void searchFile( string path, string filtr )
{
_finddata_t f;
intptr_t r;
string searching_filtr = path;
searching_filtr += "*";
if(( r = _findfirst( searching_filtr.c_str(), & f ) ) > 0 )
{
while( !_findnext( r, & f ) )
{
if( strcmp( f.name, ".." ) )
{
if( f.attrib & _A_SUBDIR )
{
string p2 = path;
p2 += f.name;
p2 += char( 92 );
searchFile( p2, filtr );
}
}
}
}
_findclose( r );
searching_filtr = path;
searching_filtr += filtr;
if(( r = _findfirst( searching_filtr.c_str(), & f ) ) > 0 )
{
do {
if( !( f.attrib & _A_SUBDIR ) )
{
cout << path << "t" << f.name << endl;
}
} while( !_findnext( r, & f ) );
}
_findclose( r );
}
int main( int size, char ** pt )
{
setlocale( LC_CTYPE, "Polish" );
string path = pt[ 0 ];
string filtr; // = "*.*";
cout << "Podaj Filtr: ";
cin >> filtr;
path.erase( path.begin() + path.find_last_of( char( 92 ), string::npos ) + 1, path.end() );
cout << "Przeszukiwanie sciezki: \"" << path <<endl<< "\" z filtrem wyszukiwania \"" << filtr << "\"" << endl << endl;
searchFile( path, filtr );
cout << endl << endl << "Wcisnij enter, aby zamknac program...";
cin.get();
return 0;
}
0
Ok. Szuka mi teraz pliki. Teraz muszę zrobić tak, żeby program utworzył katalog z nazwą szukanego słowa np. "Nowak" i skopiował tam tylko te wyszukane pliki