Ĺadny brzuch
Witam!
Mam taki oto problem - jak skopiowac jakis katalog do katalogu. Kopiowany katalog nie posiada podkatalogów, a gdy w katalogu znajduja sie pliki o tych samych nazwach to program nadaje im unikalne rozszerzenia w celu unikniecia "zadeptania"
W bashu nie mialbym z tym mysle zadnych problemow ale w C++ pierwszy raz dopiero spotykam sie z kopiowaniem katalogów
Szukalem po dorum ale znalazlem tylko czesc kodu o kopiowaniu, a ze jak wspomnialem wczesniej nie spoktalem sie w C++ z kopiowaniem katalogów to nie wiem jak sie za to zabrac
Jesli moge to bardzo prosze o jakies wskazówki i pomoc za ktora z gory dziekuje
Pozdrawiam!
poszukaj tu:
http://www.4programm...4%87_w_Linuksie
powinieneś znaleźć coś ciekawego.
jeśli wiesz jak to w bashu zrobić to możesz użyć funkcji
system("polecenie systemowe"); gdzie zamiast polecenia systemowego wstawiasz to co napisałeś w bashu
chyba powinno zadziałać
Edas a czy mozesz podac jakis przyklad uzycia tej funkcji, jakis kod źrodłowy bo o cos mi sie pluje kompilator
z gory dzieki
np coś takiego
ja na końcu swoich konsolowych programów daję tak
system("pause") co robi ze wysyła pause do konsoli czyli się pojawia napis proszę nacisnąc ... etc.
czasem też daję tak system("cls") dla windowsa i system("clear") dla linuksa - to czyści ekran
najlepiej podaj ten błąd bo być może nie zaincludowałeś jakiejś biblioteki
jak sie kompilator pluje to pewnie nie dodales:
#include <cstdlib>
;]
Jednak zrobilem to tak, poniewaz ma to hulac pod unixem, na Solarisie:
#include <unistd.h> #include <stdio.h> #include <dirent.h> #include <string.h> #include <sys/stat.h> #include <stdlib.h> int main() { char *dir; int c; DIR *dp; FILE *in,*out; struct dirent *entry; struct stat statbuf; if((dp=opendir(dir))=NULL) { fprintf(stderr,"Nie moge otworzyc katalogu: %s\n",dir); return 0; } chdir(dir); while((entry=readdir(dp))!=NULL) { lstat(entry->d_name,&statbuf); if(S_ISDIR(statbuf.st_mode)) { in=fopen("entry->d_name","r"); out=fopen("/export/home/i8481/testy/entry->d_name","w"); while((c=fgetc(in)) != EOF) fputc(c,out); } } return 0; }
I teraz pytanko mam - czy to bedzie działac? Wiem glupie pytanie ale nie mam jak tego sprawdzic poniewaz nie moge zalogowac sie na swoje szkolne konto na Solarisie z domu. Czy moglby ktos to sprawdzic? :) i ewentualnie podpowiedziec jesli cos jest nie tak (bo znajac zycie jest)
Z gory dzieki!
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Mam taki oto problem - jak skopiowac jakis katalog do katalogu. Kopiowany katalog nie posiada podkatalogów, a gdy w katalogu znajduja sie pliki o tych samych nazwach to program nadaje im unikalne rozszerzenia w celu unikniecia "zadeptania"
W bashu nie mialbym z tym mysle zadnych problemow ale w C++ pierwszy raz dopiero spotykam sie z kopiowaniem katalogów
Szukalem po dorum ale znalazlem tylko czesc kodu o kopiowaniu, a ze jak wspomnialem wczesniej nie spoktalem sie w C++ z kopiowaniem katalogów to nie wiem jak sie za to zabrac
Jesli moge to bardzo prosze o jakies wskazówki i pomoc za ktora z gory dziekuje
Pozdrawiam!
poszukaj tu:
http://www.4programm...4%87_w_Linuksie
powinieneś znaleźć coś ciekawego.
jeśli wiesz jak to w bashu zrobić to możesz użyć funkcji
system("polecenie systemowe"); gdzie zamiast polecenia systemowego wstawiasz to co napisałeś w bashu
chyba powinno zadziałać
Edas a czy mozesz podac jakis przyklad uzycia tej funkcji, jakis kod źrodłowy bo o cos mi sie pluje kompilator
z gory dzieki
np coś takiego
ja na końcu swoich konsolowych programów daję tak
system("pause") co robi ze wysyła pause do konsoli czyli się pojawia napis proszę nacisnąc ... etc.
czasem też daję tak system("cls") dla windowsa i system("clear") dla linuksa - to czyści ekran
najlepiej podaj ten błąd bo być może nie zaincludowałeś jakiejś biblioteki
jak sie kompilator pluje to pewnie nie dodales:
#include <cstdlib>
;]
Jednak zrobilem to tak, poniewaz ma to hulac pod unixem, na Solarisie:
#include <unistd.h> #include <stdio.h> #include <dirent.h> #include <string.h> #include <sys/stat.h> #include <stdlib.h> int main() { char *dir; int c; DIR *dp; FILE *in,*out; struct dirent *entry; struct stat statbuf; if((dp=opendir(dir))=NULL) { fprintf(stderr,"Nie moge otworzyc katalogu: %s\n",dir); return 0; } chdir(dir); while((entry=readdir(dp))!=NULL) { lstat(entry->d_name,&statbuf); if(S_ISDIR(statbuf.st_mode)) { in=fopen("entry->d_name","r"); out=fopen("/export/home/i8481/testy/entry->d_name","w"); while((c=fgetc(in)) != EOF) fputc(c,out); } } return 0; }
I teraz pytanko mam - czy to bedzie działac? Wiem glupie pytanie ale nie mam jak tego sprawdzic poniewaz nie moge zalogowac sie na swoje szkolne konto na Solarisie z domu. Czy moglby ktos to sprawdzic? :) i ewentualnie podpowiedziec jesli cos jest nie tak (bo znajac zycie jest)
Z gory dzieki!