[c++]Skrypt wyszukujący pliki, 2 problemy

€conOM

Użytkownik
Dołączył
Luty 2, 2012
Posty
2
Witam, mam do Was dwie prośby/pytania. Mianowicie:
Poniżej jest kod programu służącego do wyszukiwania plików na dysku.

Kod:
#include <iostream>
#include <string>
#include <sys/stat.h>
#include <dirent.h>

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"<<endl;
    }

    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<<scierzka<<dir->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)

Nie musicie podawać gotowego rozwiązania może być sam pomysł chodź miło by było gdyby komuś chciało się napisać kompletne rozwiązania;)
 
Do góry Bottom