====== 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