[C++] Usuwanie katalogu

Mam pewien problem z usunięciem katalogu w C++. Wszystko wykonuję funkcją system(“rd /s”,katalog). “katalog” ma być zdefiniowany zmienną. Generalnie mam mniej więcej w ten sposób to zrobione:

char *udir="\%userdir\%\\Dane\ aplikacji\\katalog\\*";

                system("rd \/s ",udir);

                system("PAUSE");

                }

Jednak nie chce działać. Macie może jakieś pomysły? To samo będę chciał uczynić z kopiowaniem, ale widzę że mam problem ze zmienną.

WinAPI, tak w ogóle?

funkcja SYSTEM przyjmuje tylko jeden argument wiec cos w tym stylu musisz pokombinować :

std::string usun="rd /s ";

         usun+="C:\\katalog";

                system(usun.c_str());

:slight_smile:

@wasacz: tak winapi

@blapiter: ścieżka musi mieć %appdata%

Skorzystałem póki co z getenv i printf:

char * pPath;

                pPath = getenv ("APPDATA");

                if (pPath!=NULL)

                printf ("The current path is: %s%s",pPath,"\\katalog\\bla\\bla");

                system("PAUSE");

Robi robotę i wyświetla poprawnie ścieżkę. Ale po przekazaniu do system() jest błąd, bo nie można mieć spacji w nazwach. Edit:

char costam[1024] = {0};

                sprintf(appdt, "rd /s \"%s%s\"", getenv("APPDATA"), "\\ścieżka");

                system(appdt);

                system("PAUSE");

Działa!

No ale gdzie to WinAPI?

http://msdn.microsoft.com/en-us/library/aa365488(VS.85).aspx

http://stackoverflow.com/questions/213392/what-is-the-win32-api-function-to-use-to-delete-a-folder

A to nie ma, ze mnie znikomy programista :wink: więc takie pytania ewidentnie dla mnie są niezrozumiałe :wink: