eina_file_example_01_page(3)

NAME
eina_file_example_01_page -

For brevity, variable declarations and initialization are omitted from this page, however the full source code can be seen here.

Here we have a simple callback to print the name of a file and the path that contains it:

static void
_print_cb(const char *name, const char *path, void *data EINA_UNUSED)
{
   printf("file %s in %s, name, path);
}

 We can use this callback in the following call:

   eina_file_dir_list("/home/", EINA_FALSE, _print_cb, NULL);

 The above is a way to print the files in a directory, but it is not the only one:

   it = eina_file_ls("/home/");
   EINA_ITERATOR_FOREACH(it, f_name)
     {
        printf("%s, f_name);
        eina_stringshare_del(f_name);
     }
   eina_iterator_free(it);

 And now two ways to get more information than just file names:

   it = eina_file_stat_ls("/home/");
   EINA_ITERATOR_FOREACH(it, f_info)
     printf("%s if of type %d, f_info->path, f_info->type);
   eina_iterator_free(it);
   it = eina_file_direct_ls("/home/");
   EINA_ITERATOR_FOREACH(it, f_info)
     printf("%s if of type %d, f_info->path, f_info->type);
   eina_iterator_free(it);

 The above mentioned ways of getting files on a list may produce the same output, but they have an important difference, eina_file_direct_ls() does not call stat, this means that on some systems it might not have file type information. On the other hand, it might be faster than eina_file_stat_ls().