Here is a simple example that implement a stupidly simple replacement for find:

#include <Ecore.h>
#include <Eio.h>
static Eina_Bool
_test_filter_cb(void *data, Eio_File *handler, const Eina_File_Direct_Info *info)
{
fprintf(stderr, "ACCEPTING: %s\n", info->path);
return EINA_TRUE;
}
static void
_test_main_cb(void *data, Eio_File *handler, const Eina_File_Direct_Info *info)
{
fprintf(stderr, "PROCESS: %s\n", info->path);
}
static void
_test_done_cb(void *data, Eio_File *handler)
{
printf("ls done\n");
}
static void
_test_error_cb(void *data, Eio_File *handler, int error)
{
fprintf(stderr, "error: [%s]\n", strerror(error));
}
int
main(int argc, char **argv)
{
Eio_File *cp;
if (argc != 2)
{
fprintf(stderr, "eio_ls directory\n");
return -1;
}
cp = eio_dir_stat_ls(argv[1],
_test_filter_cb,
_test_main_cb,
_test_done_cb,
_test_error_cb,
NULL);
return 0;
}