eio_dir_copy() tutorial
To use eio_dir_copy(), you basically need the source and destination files (or directories), and set three callbacks:
- The notification callback, which allows you to know if a file or a directory is copied, and the progress of the copy.
- The end callback, which is called when the copy is finished.
- The error callback, which is called if an error occured. You can then retrieve the error type as an errno error.
- Warning
- It is the user's duty to provide the "right target". It means that copying to '.' will copy the content directly inside '.' and not in a subdirectory.
Here is a simple example:
#include <Ecore.h>
#include <Eio.h>
static void
{
switch (info->op)
{
case EIO_FILE_COPY:
break;
case EIO_DIR_COPY:
break;
}
}
static void
_test_done_cb(void *data, Eio_File *handler)
{
printf("copy done\n");
ecore_main_loop_quit();
}
static void
{
fprintf(stderr, "error: [%s]\n", strerror(error));
ecore_main_loop_quit();
}
int
main(int argc, char **argv)
{
Eio_File *cp;
if (argc != 3)
{
fprintf(stderr, "eio_cp source_file destination_file\n");
return -1;
}
ecore_init();
eio_init();
cp = eio_dir_copy(argv[1], argv[2],
_test_notify_cb,
_test_done_cb,
_test_error_cb,
NULL);
ecore_main_loop_begin();
eio_shutdown();
ecore_shutdown();
return 0;
}