Witam, mam do Was dwie prośby/pytania. Mianowicie:
Poniżej jest kod programu służącego do wyszukiwania plików na dysku.
#include
#include
#include
#include
using namespace std;
void WyszukajIWypisz(const string& szukaj, string scierzka, ostream & wyjscie);
int main(int argc, char *argv[])
{
char start[4] = "@:\\";
string wyszukanie;
while (true)
{
clog<<"Wpisz nazwe obiektu, ktory ma zostac wyszukany na calym dysku\n"
"twardym, lub wcisnij Ctrl + Z aby wprowadzic EOF\n->";
getline(cin, wyszukanie);
if (!cin) break;
for (*start = 'A'; *start <= 'Z'; ++*start)
{
WyszukajIWypisz(wyszukanie, start, cout);
}
clog<<"Wyszukanie 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);
}
Po wpisaniu np. plik.txt program wyszukuje wszystkie pliki o tej nazwie i wyświetla ich ścieżki.
PROBLEM #1:
Co zrobić aby wyświetlone ścieżki zostały zapisywane do osobnych zmiennych tudzież do tablicy tak abym mógł je później wykorzystać.
PROBLEM #2:
Powiedzmy że ścieżka do plik.txt wygląda następująco: C:\plik.txt, co zrobić żeby wszystkie backslash’e “” w ścieżce zamieniły się na slash’e “/”. (w sensie gdy już będę miał wyizolowane ścieżki z #1)
Jeśli ktoś ma chociaż pomysł na to jak można te zagadnienia rozwiązać to proszę napisać.