Newsgroup: it.comp.os.linux.development
Titolo: libreria ls file

Salve,
mi servirebbe una libreria open source che, dato
in imput il percorso di una certa cartella, memorizzi
in un string[] (oppure in un char*[]) la lista dei file presenti?
Se non esiste che dovrei usare per implementare questa cosa?
Saluti

 Se non esiste che dovrei usare per implementare questa cosa?
Apri la directory (e' un file) e la leggi.
Davide
-- 
Better dead than Redmond. 


SYNOPSIS
       #include <sys/types.h>
       #include <dirent.h>
       DIR *opendir(const char *name);
DESCRIPTION
       The  opendir()  function  opens  a directory stream corre­
       sponding to the directory name, and returns a  pointer  to
       the  directory  stream.   The  stream is positioned at the
       first entry in the directory.
Alessandro.

Apri la directory (e' un file) e la leggi.
Mai provato. Funziona?
Alessandro.

 Mai provato. Funziona?
Provaci: vim -b nomediunadirectory
Davide
-- 
What's good for Standard Oil is good for Microsoft.


Siamo sicuri che vim non ci metta del suo?
Ad esempio cat non sembra comportarsi molto bene al riguardo.
Alessandro
...che non ha ancora capito se lo stai sfottendo...

 Siamo sicuri che vim non ci metta del suo?
Non ce ne mette.
Davide
-- 
Windows NT encountered the following error: The operation completed
successfully. 
   -- From a Slashdot.org post

 Davide
è un plugin , si chiama file-explorer , se guardi sulla tua installazione
hai di sicuro un explorer.vim incluso da vimrc.
da vi:
:help file-explorer
bye.
-- 
E' piu' facile scrivere un programma errato che capire un programma
corretto.

 Davide
Tu dici che non ce ne mette, tuttavia se mi porto col cursore sopra il
nome di un file e premo invio lui me lo apre, da cui deduco che vim si sia
accorto che sia una directory e si comporta di conseguenza "mettendoci del
suo". (Apparte la scritta in basso "Illegal File Name" che dovrebbe farmi
capire che non lo sta trattando come un normale file)
Torando all'apertura di una directory come semplice file (FILE*) direi
proprio che non funziona, o meglio.. il file viene aperto ma poi ? come
posso leggere i file contenuti in esso ?
Puoi postare un esempio di come useresti (f)open() su una directory ?
Grazie
PS: il "-b" di vim sull'apertura di una directory direi che non fa niente
Ciao
Maticů



dalla manpage di "scandir" (man scandir)
       /* print files in current directory in reverse order */
       #include <dirent.h>
       main(){
           struct dirent **namelist;
           int n;
           n = scandir(".", &namelist, 0, alphasort);
           if (n < 0)
               perror("scandir");
           else {
               while(n--) {
                   printf("%s\n", namelist[n]->d_name);
                   free(namelist[n]);
               }
               free(namelist);
           }
       }
Ciao
Matic

 Davide
Che sia un regular file č molto probabile, anzi č quasi sempre cosě, anche
se POSIX e SUS non lo richiedono. Il fatto comunque non ti puň
automaticamente far credere che che la rappresentazione interna al file sia
qualcosa di leggibile, come se fossero delle righe di testo cosě come le
vedi nell'output di "ls".
Per quale motivo credi esistono le API opendir(), readdir(), seekdir()
eccetera?
Saluti,
fabiomdf
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/


Questo metodo è di veloce implementazione, però ricorda che non è conforme
né a POSIX né a SUS3.
Io mi sono creato una libreria che usa opendir(), readdir(), eccetera, e che
con delle semplici funzioni da utilizzarsi in programmi client mi permette
di non dovere sempre riscrivere tutto di nuovo.
Dai anche un'occhio a wordexp(3).


Raga' grazie a tutti, ed in particolare a _Matic_ che ha postato anche un esempio
di codice.
siccome provengo dal C++ Builder, ho preso certe abitudini...
pero' devo dire che nella libreria che fornisce Borland c'e' davvero molto.
Grazie ancora
Saluti