====== Scansione directory con glib ======
Autore: **//Fabio Di Matteo//** \\ Ultima revisione: **//25/03/2016 - 18:06//** \\ \\
Il seguente programma effettua una scansione di una cartella un po' come fa il comando ''ls'' su *nix. Si usa con ''./scandir /home/user/''. Il grosso del lavoro รจ svolto dalla funzione ''void scanDir(gchar* dir)'' .
\\ \\
**main.c**
#include
#include //solo se serve usare exit()
void scanDir(gchar* dir)
{
GError *error = NULL;
const gchar* file;
//Cerco di aprire la directory, se ci sono errori li stampa
GDir *d = g_dir_open( dir,0,&error );
if (error!=NULL)
{
g_print(error->message);
g_error_free (error);
exit(-1);
}
//Non ci sono stati errori e scandaglia la directory
while(( file = g_dir_read_name(d) ))
{
g_print("%s\n",file);
}
//Chiudo la directory
g_dir_close( d );
exit(0);
}
int main(int argc, char** argv)
{
//Ciclo principale glib
GMainLoop *loop;
loop = g_main_loop_new ( NULL , FALSE );
//La funzione che scandaglia la directory presa come argv[1]
scanDir(argv[1]);
//Eseguo il ciclo principale delle Glib
g_main_loop_run (loop);
g_main_loop_unref(loop);
return 0;
}
**makefile**
CPP = gcc
OPTS = `pkg-config --cflags --libs glib-2.0 `
all:
$(CPP) main.c -o scandir $(OPTS)
clean:
rm scandir