Ravior

Untitled

Aug 12th, 2013
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <dirent.h>
  5. #include <glib.h>
  6. #include <glib/gprintf.h>
  7. #include <limits.h>
  8. #include <errno.h>
  9. #include <sys/types.h>
  10. #include <unistd.h>
  11.  
  12. int main(int argc, char *argv[]) {
  13. GSList *list = NULL;
  14. list = g_slist_prepend(list, "/home/ravior/Muzică"); /* Folder for searching */
  15.  
  16. DIR *d;
  17.  
  18. int index = 0;
  19.  
  20. while((char *)g_slist_nth_data(list, 0) != NULL) {
  21. gchar *element = g_strdup((char *)g_slist_nth_data(list, 0));
  22. d = opendir((char *)g_slist_nth_data(list, 0));
  23. if(!d) {
  24. fprintf(stderr, "Nu poate fi deschis fișierul '%s' : %s\n", (char *)g_slist_nth_data(list, 0), strerror(errno));
  25. exit(EXIT_FAILURE);
  26. }
  27.  
  28. printf("\n\nDocumentul deschis este: %s\n", (char *)g_slist_nth_data(list, 0)); /* The opened document is: %s\n */
  29.  
  30. while(TRUE) {
  31. struct dirent *entry;
  32. const char *d_name;
  33.  
  34. entry = readdir(d);
  35. if(!entry) {
  36. break;
  37. }
  38.  
  39. d_name = entry->d_name;
  40.  
  41. /* Some code here... */
  42.  
  43. if(entry->d_type & DT_DIR && strcmp(d_name, "..") != 0 && strcmp(d_name, ".") != 0) {
  44. int path_length;
  45. static char path[PATH_MAX];
  46.  
  47. usleep(10000);
  48. path_length = snprintf(path, PATH_MAX, "%s/%s",element, d_name);
  49. if(path_length >= PATH_MAX) {
  50. fprintf(stderr, "Path length has got too long.\n");
  51. exit(EXIT_FAILURE);
  52. }
  53.  
  54. printf("%s\n", path);
  55. list = g_slist_prepend(list, path);
  56.  
  57. index++;
  58. }
  59. }
  60.  
  61. if(closedir(d)){
  62. fprintf(stderr, "Nu s-a putut închide '%s': %s\n",(char *)g_slist_nth_data(list, 0), strerror(errno)); /* Couldn't close '%s': %s\n */
  63. }
  64.  
  65. free(element);
  66. element = NULL;
  67. list = g_slist_remove(list, (char *)g_slist_nth_data(list,index));
  68. index--;
  69.  
  70. }
  71.  
  72. g_slist_free(list);
  73.  
  74. return EXIT_SUCCESS;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment