inzaghi89
(inzaghi89)
22 Październik 2010 14:03
#1
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ą.
blapiter
(Blapiter)
22 Październik 2010 15:30
#3
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());
inzaghi89
(inzaghi89)
22 Październik 2010 15:38
#4
@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!
Wasacz
(Wasacz)
22 Październik 2010 19:23
#5
inzaghi89
(inzaghi89)
22 Październik 2010 19:29
#6
A to nie ma, ze mnie znikomy programista więc takie pytania ewidentnie dla mnie są niezrozumiałe