Verzeichnisse filtern mit glib
-
Hallo
Ich habe gerade mit C b.z.w GTK+ angefangen.
Möchte aus einen geöffneten Verzeichnis die Verzeichnisse filtern.
_________________________________________________________________GDir *dir;
const gchar *homepath = g_get_home_dir();
const gchar *dirpath;
dir = g_dir_open(homepath,0,NULL);while((dirpath = g_dir_read_name(dir)))
{if((g_file_test(dirpath,G_FILE_TEST_IS_DIR)))
{
g_print("%s\n",dirpath);
}}
g_dir_close(dir);________________________________________________________________
Leider gibt g_print garnichts aus. Brauch nur einen kleinen Denkanstoss.
MfG
Klaus
-
Liefert g_file_test() überhaupt einmal true zurück? (-> Debugger + Hilfsvariable)
Sind in dem Verzeichnis, dass du liest, überhaupt andere Verzeichnisse?
-
Hallo
Ich benutze Linux und habe daher einen komplizierten Debugger(gdb) zur Verfügung.
Da ich noch am Anfang von C stehen weiss ich nicht wie eine Hilfsvariable eingesetzt wird. Wäre schön wenn du mir das erklärst. Im Homeverzeichnis befinden sich auch Verzeichnisse.MfG
Klaus
-
Mit Hilfsvariable meine ich eigentlich nur, dass du das Ergebnis von g_file_test() in einer Variable speicherst; obwohl du das eigentlich nicht bräuchtest, aber im Debugger kann man sich meistens nur die Werte von Variablen anzeigen lassen:
int h; ... while((dirpath = g_dir_read_name(dir))) { h = g_file_test(dirpath,G_FILE_TEST_IS_DIR); if(h) { g_print("%s\n",dirpath); } }
Im Debugger musst du dir dann also einfach den Wert von h anzeigen, nachdem die Funktion g_file_test() ausgeführt wurde. Mit dem Debugger selber kannst du auch Schritt für Schritt verfolgen was ausgeführt wird. Alles in allem ein wirklich praktisches Werkzeug ;).
-
Hallo AJ
Danke für deine Hilfe. Habe auch herausgefunden warum die Verzeichnisse nicht ausgegeben. Es liegt daran das g_file_test im aktuellen Verzeichnis die Daten prüft während ich versucht hatte mittels "const gchar *homepath = g_get_home_dir(); " im Homeverzeichnis des User die Daten zu prüfen.
MfG
Klaus