Tizen Native API
3.0
|
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 occurred. 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 _test_notify_cb(void *data, Eio_File *handler, const Eio_Progress *info) { switch (info->op) { case EIO_FILE_COPY: printf("[%s] %f%%\n", info->dest, info->percent); break; case EIO_DIR_COPY: printf("global [%li/%li] %f%%\n", info->current, info->max, info->percent); break; } } static void _test_done_cb(void *data, Eio_File *handler) { printf("copy done\n"); ecore_main_loop_quit(); } static void _test_error_cb(int error, Eio_File *handler, void *data) { 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; }