Dobar dan! Da li bih netko mogao napisati kod u C++-u koji bih dakle ispisao u string obliku popis file-ova u zadanom direktoriju (hardcoded, konkretno /dev/shm/chat/mapcfgs/ )? Naime gledao sam na netku slicne stvari no jos nisam na toj razini te moze i rjesenje koje bi radilo na svim OS-ovima tj. uz boost! Ne, nije za zadacu/fax/poslovne svrhe!
Popis file-ova u direktoriju (Linux)
- poruka: 5
- |
- čitano: 1.261
- |
- moderatori:
Lazarus Long, XXX-Man, vincimus
- +/- sve poruke
- ravni prikaz
- starije poruke gore
Znači, ukoliko želite u linuxu izlistati fajlove, koristite "školjčinu" (shell) naredbu ls. Tako, da izlistate fajlove u tom direktororiju napišete jednostavno
ls /dev/shm/chat/mapcfgs/ -1
Ovaj -1 na kraju označava da želite da izlista svaki fajl u novi red. Ako želite da ispiše i skrivene fajlove (to su linuxu oni koji počinju sa '.') napišete
ls /dev/shm/chat/mapcfgs/ -a1
Nadam se da pomaže... Ostatak funkcionalnosti ls-a možete vidjeti na stranici iz linka. Naravno, mogu se koristiti i operatori za preusmjeravanje toka ('>', '|' i '>>') pa se output može spremiti u fajl.
PS Ako želite to izvesti iz C++, koristite naredbu system(...) te spremite output u file iz kojega onda pročitate ono što je bitno.
OOOPS, pa mislio sam u C++-u kod, uredio sam prvi post. Za ls znam i sluzim se njime u console modu :>
OK, onda treba ovako nesto:
vector< string > read_dir( void ) {
system( "ls -1 /dev/shm/chat/mapcfgs >.temp.ls.123100");
FILE *fin = fopen( ".temp.ls.123100", "r" );
char buff[1024];
vector< string > ret;
while( fgets( buff, sizeof( buff ), fin ) == 1 )
ret.push_back( buff );
fclose( fin );
return ret;
}
Budem probao malo kasnije, trenutno imam dosta posla no dosao sam vidjeti tijekom predaha! Hvala unaprijed na pomoci.