[Gtk] reperer unn fichier ou un dossier dans un repertoire

reperer unn fichier ou un dossier dans un repertoire [Gtk] - C - Programmation

Marsh Posté le 20-05-2004 à 15:13:10    

Voilà, j'ai un petit problème avec la fonction g_file_test.
En fait, je programme sous windows et j'utilise cette fonction pour savoir si le nom que me retourne la fonction g_dir_read_name est celui d'un fichier ou d'un dossier.
Le problème, c'ets que lorsque que j'ai un dossier, cela ne semble pas fonctionner
 
j'ai fait çà :

Code :
  1. #include <gtk/gtk.h>
  2. #include <stdio.h>
  3. /* prototypes des fonctions et actions */
  4. bool reccur(char *Path);
  5. /* fonction principale */
  6. int main()
  7. {
  8. /* variables */
  9. bool success;
  10. success = reccur("C:\\Test_pather" );
  11. /* on vérifie qu'il n'y a pas eu d'erreur */
  12. if (!success)
  13. {
  14.  puts("Erreur" );
  15. }
  16. return 0;
  17. }
  18. /* listage d'un repertoire */
  19. bool reccur(char *Path)
  20. {
  21. /* variables */
  22. GDir* Dossier = g_dir_open(Path,0,NULL);
  23. const char* Fich_Cour;
  24. /* on vérifie que le dossier soit ouvert */
  25. if (Dossier != NULL)
  26. {
  27.  /* on choppe le premier fichier */
  28.  Fich_Cour = g_dir_read_name(Dossier);
  29.  /* boucle de traitement des fichiers */
  30.  while (Fich_Cour != NULL)
  31.  {
  32.   if (g_file_test(Fich_Cour,G_FILE_TEST_IS_DIR ))
  33.   {
  34.    printf("Dossier : %s\n",Fich_Cour);
  35.   }
  36.   else
  37.   {
  38.    puts(Fich_Cour); /* on affiche le nom */
  39.   }
  40.   Fich_Cour = g_dir_read_name(Dossier); /* on récupère le nom suivant */
  41.  }
  42.  /* on referme le dossier */
  43.  g_dir_close(Dossier);
  44.  /* tout s'est bien passé en théorie */
  45.  return true;
  46. }
  47. else
  48. {
  49.  /* dossier non ouvert */
  50.  return false;
  51. }
  52. }


je voudrais savoir si l'erreur vient de moi ou si elle viens de gtk.
Sinon, comment je pourrais faire pour savoir si c'ets le nom d'un fichier ou d'un dossier ?
@++

Reply

Marsh Posté le 20-05-2004 à 15:13:10   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed