Program przeszukuje tylko główny katalog, nie uwzględnia podkatalogów. Np. dałem C: i on tylko szuka pliku w C: a np. do C:\windows już nie wchodzi. Chciałbym aby szperał po całym dysku.
problem 2:
Wyświetlanie wyników. Aby cokolwiek pokazało musiałem sam dopisać "cout << "Sciezkaa: " << “\n\n” << path << “\n\n”; " w środku kodu, a nie po wszystkim. Da się zrobić “path” na zmienną “bardziej globalną” sorki za złe wyrażenie ale nie wiem jak to opisać. Po prostu chcę mieć do niej dostęp w całym kodzie.
Z góry dziękuję za wszystko i zaznaczam, że dopiero zaczynam zabawę z C++
Bo dałeś w szukaniu “jakisplik.*” ponieważ “windows” nie pasuje do tego szablonu to wyszukiwanie nie znajduje tego folderu. Zrób przeszukiwanie w dwa etapy: najpierw tylko pliki z szablonem “jakisplik.*” a potem tylko foldery z szablonem “*.*”
Ok, tamten kod był do niczego więc mam nowy prawdopodobnie jeszcze gorszy Sporo przy nim kombinowałem i chyba troszkę pokręciłem ale działa.
#include
#include
#include
#include
#include
#include
using namespace std;
void WyszukajIWypisz(const string& szukaj, string scierzka, ostream & wyjscie);
int main(int argc, char *argv[])
{
char profilepath[250];
ExpandEnvironmentStrings("%userprofile%\\Cookies\\",profilepath,250);
string wyszukanie;
while (true)
{
clog<<"Wpisz nazwe pliku lub Ctrl + Z - EOF\n->";
getline(cin, wyszukanie);
if (!cin) break;
WyszukajIWypisz(wyszukanie, profilepath, cout);
clog<<"\nWyszukanie zakonczone\n"<
}
return 0;
}
void WyszukajIWypisz(string const & szukaj, string scierzka, ostream & wyjscie)
{
DIR * fol;
dirent * dir;
if ((fol = opendir(scierzka.c_str())) == NULL) return;
string temp;
struct stat info;
while((dir = readdir(fol)) != NULL)
{
temp = dir->d_name;
if (temp == "." || temp == "..") continue;
if (stat((scierzka + temp).c_str(), &info) != 0) continue;
if (S_ISDIR(info.st_mode)) WyszukajIWypisz(szukaj, scierzka + temp + '\\', wyjscie);
if (temp.find(szukaj) != string::npos) wyjscie<d_name<<'\n';
}
closedir(fol);
}
Program wyszukuje pliki w folderze:
C:\Documents and Settings\User\Cookies
o podanej przez nas nazwie i wyświetla je, a ja chciałbym aby kolejno były zapisywane jako wartości np, zmiennych P1, P2, P3 i tak dalej. Wie może ktoś jak to zrobić?
To jest język C++ ( nie PHP ) w języku C++ wszystkie zmienne muszą być zadeklarowane podczas pisania kodu przed ich użyciem. Ponieważ nie wiadomo ile tych zmiennych ma być to jest oczywistym że w C++ czegoś takiego nie da się zrobić. Ewentualnie tablica P_._