Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <dirent.h>
- #include <glib.h>
- #include <glib/gprintf.h>
- #include <limits.h>
- #include <errno.h>
- #include <sys/types.h>
- #include <unistd.h>
- int main(int argc, char *argv[]) {
- GSList *list = NULL;
- list = g_slist_prepend(list, "/home/ravior/Muzică"); /* Folder for searching */
- DIR *d;
- int index = 0;
- while((char *)g_slist_nth_data(list, 0) != NULL) {
- gchar *element = g_strdup((char *)g_slist_nth_data(list, 0));
- d = opendir((char *)g_slist_nth_data(list, 0));
- if(!d) {
- fprintf(stderr, "Nu poate fi deschis fișierul '%s' : %s\n", (char *)g_slist_nth_data(list, 0), strerror(errno));
- exit(EXIT_FAILURE);
- }
- printf("\n\nDocumentul deschis este: %s\n", (char *)g_slist_nth_data(list, 0)); /* The opened document is: %s\n */
- while(TRUE) {
- struct dirent *entry;
- const char *d_name;
- entry = readdir(d);
- if(!entry) {
- break;
- }
- d_name = entry->d_name;
- /* Some code here... */
- if(entry->d_type & DT_DIR && strcmp(d_name, "..") != 0 && strcmp(d_name, ".") != 0) {
- int path_length;
- static char path[PATH_MAX];
- usleep(10000);
- path_length = snprintf(path, PATH_MAX, "%s/%s",element, d_name);
- if(path_length >= PATH_MAX) {
- fprintf(stderr, "Path length has got too long.\n");
- exit(EXIT_FAILURE);
- }
- printf("%s\n", path);
- list = g_slist_prepend(list, path);
- index++;
- }
- }
- if(closedir(d)){
- 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 */
- }
- free(element);
- element = NULL;
- list = g_slist_remove(list, (char *)g_slist_nth_data(list,index));
- index--;
- }
- g_slist_free(list);
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment