Typedefs | |
typedef struct _Ecore_File_Monitor | Ecore_File_Monitor |
Abstract type used when monitoring a directory. | |
typedef struct _Ecore_File_Download_Job | Ecore_File_Download_Job |
Abstract type used when aborting a download. | |
typedef enum _Ecore_File_Event | Ecore_File_Event |
typedef void(* | Ecore_File_Monitor_Cb) (void *data, Ecore_File_Monitor *em, Ecore_File_Event event, const char *path) |
Callback type used when a monitored directory has changes. | |
typedef void(* | Ecore_File_Download_Completion_Cb) (void *data, const char *file, int status) |
Callback type used when a download is finished. | |
typedef enum _Ecore_File_Progress_Return | Ecore_File_Progress_Return |
typedef int(* | Ecore_File_Download_Progress_Cb) (void *data, const char *file, long int dltotal, long int dlnow, long int ultotal, long int ulnow) |
Callback type used while a download is in progress. | |
Enumerations | |
enum | _Ecore_File_Event { ECORE_FILE_EVENT_NONE, ECORE_FILE_EVENT_CREATED_FILE, ECORE_FILE_EVENT_CREATED_DIRECTORY, ECORE_FILE_EVENT_DELETED_FILE, ECORE_FILE_EVENT_DELETED_DIRECTORY, ECORE_FILE_EVENT_DELETED_SELF, ECORE_FILE_EVENT_MODIFIED, ECORE_FILE_EVENT_CLOSED } |
The event type returned when a file or directory is monitored. More... | |
enum | _Ecore_File_Progress_Return { ECORE_FILE_PROGRESS_CONTINUE = 0, ECORE_FILE_PROGRESS_ABORT = 1 } |
What to do with the download as a return from the Ecore_File_Download_Progress_Cb function, if provided. More... | |
Functions | |
int | ecore_file_init () |
Initialize the Ecore_File library. More... | |
int | ecore_file_shutdown () |
Shut down the Ecore_File library. More... | |
long long | ecore_file_mod_time (const char *file) |
Get the time of the last modification to the given file. More... | |
long long | ecore_file_size (const char *file) |
Get the size of the given file. More... | |
Eina_Bool | ecore_file_exists (const char *file) |
Check if the given file exists. More... | |
Eina_Bool | ecore_file_is_dir (const char *file) |
Check if the given file is a directory. More... | |
Eina_Bool | ecore_file_mkdir (const char *dir) |
Create a new directory. More... | |
int | ecore_file_mkdirs (const char **dirs) |
Create complete directory in a batch. More... | |
int | ecore_file_mksubdirs (const char *base, const char **subdirs) |
Create complete list of sub-directories in a batch (optimized). More... | |
Eina_Bool | ecore_file_rmdir (const char *dir) |
Delete the given directory. More... | |
Eina_Bool | ecore_file_unlink (const char *file) |
Delete the given file. More... | |
Eina_Bool | ecore_file_remove (const char *file) |
Remove the given file or directory. More... | |
Eina_Bool | ecore_file_recursive_rm (const char *dir) |
Delete the given directory and all its contents. More... | |
static Eina_Bool | _ecore_file_mkpath_if_not_exists (const char *path) |
Eina_Bool | ecore_file_mkpath (const char *path) |
Create a complete path. More... | |
int | ecore_file_mkpaths (const char **paths) |
Create complete paths in a batch. More... | |
Eina_Bool | ecore_file_cp (const char *src, const char *dst) |
Copy the given file to the given destination. More... | |
Eina_Bool | ecore_file_mv (const char *src, const char *dst) |
Move the given file to the given destination. More... | |
Eina_Bool | ecore_file_symlink (const char *src, const char *dest) |
Create a symbolic link. More... | |
char * | ecore_file_realpath (const char *file) |
Get the canonicalized absolute path name. More... | |
const char * | ecore_file_file_get (const char *path) |
Get the filename from a given path. More... | |
char * | ecore_file_dir_get (const char *file) |
Get the directory where the given file resides. More... | |
Eina_Bool | ecore_file_can_read (const char *file) |
Check if the given file can be read. More... | |
Eina_Bool | ecore_file_can_write (const char *file) |
Check if the given file can be written. More... | |
Eina_Bool | ecore_file_can_exec (const char *file) |
Check if the given file can be executed. More... | |
char * | ecore_file_readlink (const char *lnk) |
Get the path pointed by the given link. More... | |
Eina_List * | ecore_file_ls (const char *dir) |
Get the list of the files and directories in the given directory. More... | |
char * | ecore_file_app_exe_get (const char *app) |
Return the executable from the given command. More... | |
char * | ecore_file_escape_name (const char *filename) |
Add the escape sequence ('\') to the given file name. More... | |
char * | ecore_file_strip_ext (const char *path) |
Remove the extension from the given file name. More... | |
int | ecore_file_dir_is_empty (const char *dir) |
Check if the given directory is empty. More... | |
EAPI Eina_Iterator * | ecore_file_ls_iterator (const char *dir) |
EAPI Ecore_File_Monitor * | ecore_file_monitor_add (const char *path, Ecore_File_Monitor_Cb func, void *data) |
Monitor the given path using inotify, Windows notification, or polling. More... | |
EAPI void | ecore_file_monitor_del (Ecore_File_Monitor *em) |
Stop the monitoring of the given path. More... | |
EAPI const char * | ecore_file_monitor_path_get (Ecore_File_Monitor *em) |
Get the monitored path. More... | |
EAPI Eina_Bool | ecore_file_path_dir_exists (const char *in_dir) |
Check if the given directory is in PATH. More... | |
EAPI Eina_Bool | ecore_file_app_installed (const char *exe) |
Check if the given application is installed. More... | |
EAPI Eina_List * | ecore_file_app_list (void) |
Get a list of all the applications installed on the system. More... | |
EAPI Eina_Bool | ecore_file_download (const char *url, const char *dst, Ecore_File_Download_Completion_Cb completion_cb, Ecore_File_Download_Progress_Cb progress_cb, void *data, Ecore_File_Download_Job **job_ret) |
Download the given url to the given destination. More... | |
EAPI Eina_Bool | ecore_file_download_full (const char *url, const char *dst, Ecore_File_Download_Completion_Cb completion_cb, Ecore_File_Download_Progress_Cb progress_cb, void *data, Ecore_File_Download_Job **job_ret, Eina_Hash *headers) |
Download the given url to the given destination with additional headers. More... | |
EAPI void | ecore_file_download_abort_all (void) |
Abort all downloads. More... | |
EAPI void | ecore_file_download_abort (Ecore_File_Download_Job *job) |
Abort the given download job and call the completion_cb callbck with a status of 1 (error). More... | |
EAPI Eina_Bool | ecore_file_download_protocol_available (const char *protocol) |
Check if the given protocol is available. More... | |
static int | _ecore_file_download_url_compare_job (const void *data1, const void *data2) |
static Eina_Bool | _ecore_file_download_url_complete_cb (void *data, int type, void *event) |
static Eina_Bool | _ecore_file_download_url_progress_cb (void *data, int type, void *event) |
Ecore_File_Download_Job * | _ecore_file_download_curl (const char *url, const char *dst, Ecore_File_Download_Completion_Cb completion_cb, Ecore_File_Download_Progress_Cb progress_cb, void *data, Eina_Hash *headers) |
Variables | |
static mode_t | default_mode = S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH |
enum _Ecore_File_Event |
The event type returned when a file or directory is monitored.
EAPI int ecore_file_init | ( | ) |
Initialize the Ecore_File library.
This function sets up Ecore_File and the services it will use (monitoring, downloading, PATH related feature). It returns 0 on failure, otherwise it returns the number of times it has already been called.
When Ecore_File is not used anymore, call ecore_file_shutdown() to shut down the Ecore_File library.
References EAPI, ecore_init(), eina_log_domain_register(), and EINA_LOG_ERR.
Referenced by efreet_init(), and efreet_mime_init().
EAPI int ecore_file_shutdown | ( | ) |
Shut down the Ecore_File library.
This function shuts down the Ecore_File library. It returns 0 when it has been called the same number of times than ecore_file_init(). In that case it shuts down all the services it uses.
References EAPI, ecore_shutdown(), and eina_log_domain_unregister().
Referenced by efreet_init(), efreet_mime_init(), efreet_mime_shutdown(), and efreet_shutdown().
EAPI long long ecore_file_mod_time | ( | const char * | file | ) |
Get the time of the last modification to the given file.
file | The name of the file. |
This function returns the time of the last modification of file
. On failure, it returns 0.
References EAPI.
EAPI long long ecore_file_size | ( | const char * | file | ) |
Get the size of the given file.
file | The name of the file. |
This function returns the size of file
in bytes. On failure, it returns 0.
References EAPI.
Check if the given file exists.
file | The name of the file. |
EINA_TRUE
if the file
exists, EINA_FALSE
otherwise.This function returns EINA_TRUE
if file
exists on local filesystem, EINA_FALSE
otherwise.
References EAPI, EINA_FALSE, and EINA_TRUE.
Check if the given file is a directory.
file | The name of the file. |
EINA_TRUE
if the file exists and is a directory, EINA_FALSE
otherwise.This function returns EINA_TRUE
if file
exists exists and is a directory on local filesystem, EINA_FALSE
otherwise.
References EINA_FALSE, and EINA_TRUE.
Create a new directory.
dir | The name of the directory to create |
EINA_TRUE
on successful creation, EINA_FALSE
otherwise.This function creates the directory dir
with the mode S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH. On success, it returns EINA_TRUE
, EINA_FALSE
otherwise.
Referenced by ecore_file_mkdirs().
EAPI int ecore_file_mkdirs | ( | const char ** | dirs | ) |
Create complete directory in a batch.
dirs | The list of directories, null terminated. |
NULL
.This function creates all the directories that are in the null terminated array dirs
. The function loops over the directories and call ecore_file_mkdir(). This function returns -1 if dirs
is NULL
, otherwise if returns the number of suceesfully created directories.
References EAPI, and ecore_file_mkdir().
EAPI int ecore_file_mksubdirs | ( | const char * | base, |
const char ** | subdirs | ||
) |
Create complete list of sub-directories in a batch (optimized).
base | The base directory to act on. |
subdirs | The list of directories, null terminated. |
This function creates all the directories that are in the null terminated array dirs
in the base
directory. If base
does not exist, it will be created. The function loops over the directories and call ecore_file_mkdir(). The whole path of the directories must exist. So if base/a/b/c wants to be created, subdirs
must contain "a", "a/b" and "a/b/c", in that order. This function returns -1 if dirs
or base
are NULL
, or if base
is empty ("\0"). It returns 0 is base
is not a directory or invalid, or if it can't be created. Otherwise if returns the number of suceesfully created directories.
Delete the given directory.
dir | The name of the directory to delete. |
EINA_TRUE
on success, EINA_FALSE
otherwise.This function deletes dir
. It returns EINA_TRUE
on success, EINA_FALSE
otherwise.
References EAPI, EINA_FALSE, and EINA_TRUE.
Delete the given file.
file | The name of the file to delete. |
EINA_TRUE
on success, EINA_FALSE
otherwise.This function deletes file
. It returns EINA_TRUE
on success, EINA_FALSE
otherwise.
References EAPI, EINA_FALSE, and EINA_TRUE.
Remove the given file or directory.
file | The name of the file or directory to delete. |
EINA_TRUE
on success, EINA_FALSE
otherwise.This function removes file
. It returns EINA_TRUE
on success, EINA_FALSE
otherwise.
References EAPI, EINA_FALSE, and EINA_TRUE.
Delete the given directory and all its contents.
dir | The name of the directory to delete. |
EINA_TRUE
on success, EINA_FALSE
otherwise.This function delete dir
and all its contents. If dir
is a link only the link is removed. It returns EINA_TRUE
on success, EINA_FALSE
otherwise.
Create a complete path.
path | The path to create |
EINA_TRUE
on success, EINA_FALSE
otherwise.This function creates path
and all the subdirectories it contains. The separator is '/' or '\'. If path
exists, this function returns EINA_TRUE
immediately. It returns EINA_TRUE
on success, EINA_FALSE
otherwise.
Referenced by ecore_file_mkpaths().
EAPI int ecore_file_mkpaths | ( | const char ** | paths | ) |
Create complete paths in a batch.
paths | list of paths, null terminated. |
This function creates all the directories that are in the null terminated array paths
. The function loops over the directories and call ecore_file_mkpath(), hence on Windows, '\' must be replaced by '/' before calling that function. This function returns -1 if paths
is NULL
. Otherwise if returns the number of suceesfully created directories.
References EAPI, and ecore_file_mkpath().
Copy the given file to the given destination.
src | The name of the source file. |
dst | The name of the destination file. |
EINA_TRUE
on success, EINA_FALSE
otherwise.This function copies src
to dst
. If the absolute path name of src
and dst
can not be computed, or if they are equal, or if the copy fails, the function returns EINA_FALSE
, otherwise it returns EINA_TRUE
.
Move the given file to the given destination.
src | The name of the source file. |
dst | The name of the destination file. |
EINA_TRUE
on success, EINA_FALSE
otherwise.This function moves src
to dst
. It returns EINA_TRUE
on success, EINA_FALSE
otherwise.
Create a symbolic link.
src | The name of the file to link. |
dest | The name of link. |
EINA_TRUE
on success, EINA_FALSE
otherwise.This function create the symbolic link dest
of src
. This function does not work on Windows. It returns EINA_TRUE
on success, EINA_FALSE
otherwise.
EAPI char * ecore_file_realpath | ( | const char * | file | ) |
Get the canonicalized absolute path name.
file | The file path. |
This function returns the absolute path name of file
as a newly allocated string. If file
is NULL
, or on error, this function returns an empty string. Otherwise, it returns the absolute path name. When not needed anymore, the returned value must be freed.
EAPI const char * ecore_file_file_get | ( | const char * | path | ) |
Get the filename from a given path.
path | The complete path. |
This function returns the file name of path
. If path
is NULL
, the functions returns NULL
.
References EAPI.
EAPI char * ecore_file_dir_get | ( | const char * | file | ) |
Get the directory where the given file resides.
file | The name of the file. |
This function returns the directory where file
resides as anewly allocated string. If file
is NULL
or on error, this function returns NULL
. When not needed anymore, the returned value must be freed.
Check if the given file can be read.
file | The name of the file. |
EINA_TRUE
if the file
is readable, EINA_FALSE
otherwise.This function returns EINA_TRUE
if file
can be read, EINA_FALSE
otherwise.
References EINA_FALSE.
Check if the given file can be written.
file | The name of the file. |
EINA_TRUE
if the file
is writable, EINA_FALSE
otherwise.This function returns EINA_TRUE
if file
can be written, EINA_FALSE
otherwise.
References EINA_FALSE.
Check if the given file can be executed.
file | The name of the file. |
EINA_TRUE
if the file
can be executed, EINA_FALSE
otherwise.This function returns EINA_TRUE
if file
can be executed, EINA_FALSE
otherwise.
References EINA_FALSE.
EAPI char * ecore_file_readlink | ( | const char * | lnk | ) |
Get the path pointed by the given link.
lnk | The name of the link. |
This function returns the path pointed by link
as a newly allocated string. This function does not work on Windows. On failure, the function returns NULL
. When not needed anymore, the returned value must be freed.
Get the list of the files and directories in the given directory.
dir | The name of the directory to list |
This function returns a list of allocated strings of all the files and directories contained in dir
. The list will be sorted with strcoll as compare function. That means that you may want to set the current locale for the category LC_COLLATE with setlocale(). For more information see the manual pages of strcoll and setlocale. The list will not contain the directory entries for '.' and '..'. On failure, NULL
is returned. When not needed anymore, the list elements must be freed.
References EAPI, EINA_COMPARE_CB, eina_file_direct_ls(), EINA_ITERATOR_FOREACH, eina_iterator_free(), eina_list_append(), eina_list_count(), eina_list_sort(), _Eina_File_Direct_Info::name_start, and _Eina_File_Direct_Info::path.
EAPI char * ecore_file_app_exe_get | ( | const char * | app | ) |
Return the executable from the given command.
app | The application command, with parameters. |
app
as a newly allocated string. Arguments are removed and escape characters are handled. If app
is NULL
, or on failure, the function returns NULL
. When not needed anymore, the returned value must be freed. References EAPI.
EAPI char * ecore_file_escape_name | ( | const char * | filename | ) |
Add the escape sequence ('\') to the given file name.
filename | The file name. |
This function adds the escape sequence ('\') to the given file name and returns the result as a newly allocated string. If the length of the returned string is longer than PATH_MAX, or on failure, NULL
is returned. When not needed anymore, the returned value must be freed.
EAPI char * ecore_file_strip_ext | ( | const char * | path | ) |
Remove the extension from the given file name.
path | The name of the file. |
NULL
on errors.This function removes the extension from path
and returns the result as a newly allocated string. If path
is NULL
, or on failure, the function returns NULL
. When not needed anymore, the returned value must be freed.
References EAPI.
EAPI int ecore_file_dir_is_empty | ( | const char * | dir | ) |
Check if the given directory is empty.
dir | The name of the directory to check. |
1
if directory is empty, 0
if it has at least one file or -1
in case of errors.This functions checks if dir
is empty. The '.' and '..' files will be ignored. If dir
is empty, 1 is returned, if it contains at least one file, 0
is returned. On failure, -1
is returned.
References eina_file_direct_ls(), EINA_ITERATOR_FOREACH, and eina_iterator_free().
Ecore_File_Monitor * ecore_file_monitor_add | ( | const char * | path, |
Ecore_File_Monitor_Cb | func, | ||
void * | data | ||
) |
Monitor the given path using inotify, Windows notification, or polling.
path | The path to monitor. |
func | The function to call on changes. |
data | The data passed to func. |
This function monitors path
. If path
is NULL
, or is an empty string, or none of the notify methods (Inotify, Windows notification or polling) is available, or if path
is not a file, the function returns NULL
. Otherwise, it returns a newly allocated Ecore_File_Monitor object and the monitoring begins. When one of the Ecore_File_Event event is notified, func
is called and data
is passed to func
. Call ecore_file_monitor_del() to stop the monitoring.
Referenced by eeze_mount_tabs_watch().
void ecore_file_monitor_del | ( | Ecore_File_Monitor * | em | ) |
Stop the monitoring of the given path.
em | The Ecore_File_Monitor to stop. |
This function stops the the monitoring of the path that has been monitored by ecore_file_monitor_add(). em
must be the value returned by ecore_file_monitor_add(). If em
is NULL
, or none of the notify methods (Inotify, Windows notification or polling) is availablethis function does nothing.
Referenced by eeze_mount_tabs_unwatch(), and efreet_mime_init().
const char * ecore_file_monitor_path_get | ( | Ecore_File_Monitor * | em | ) |
Get the monitored path.
em | The Ecore_File_Monitor to query. |
em
.This function returns the monitored path that has been monitored by ecore_file_monitor_add(). em
must be the value returned by ecore_file_monitor_add(). If em
is NULL
, the function returns NULL
.
Eina_Bool ecore_file_path_dir_exists | ( | const char * | in_dir | ) |
Check if the given directory is in PATH.
in_dir | The name of the directory to search in PATH. |
EINA_TRUE
if the directory exist in PATH, EINA_FALSE
otherwise.This function checks if in_dir
is in the environment variable PATH. If in_dir
is NULL
, or if PATH is empty, or in_dir
is not in PATH, the function returns EINA_FALSE
, otherwise it returns EINA_TRUE
.
References EAPI, EINA_FALSE, EINA_LIST_FOREACH, and EINA_TRUE.
Eina_Bool ecore_file_app_installed | ( | const char * | exe | ) |
Check if the given application is installed.
exe | The name of the application |
EINA_TRUE
if the exe
is in PATH and is executable, EINA_FALSE
otherwise.This function checks if exe
exists in PATH and is executable. If exe
is NULL
or is not executable, the function returns EINA_FALSE
, otherwise it returns EINA_TRUE
.
Eina_List * ecore_file_app_list | ( | void | ) |
Get a list of all the applications installed on the system.
This function returns a list of allocated strings of all the executable files. If no files are found, the function returns NULL
. When not needed anymore, the element of the list must be freed.
Eina_Bool ecore_file_download | ( | const char * | url, |
const char * | dst, | ||
Ecore_File_Download_Completion_Cb | completion_cb, | ||
Ecore_File_Download_Progress_Cb | progress_cb, | ||
void * | data, | ||
Ecore_File_Download_Job ** | job_ret | ||
) |
Download the given url to the given destination.
url | The complete url to download. |
dst | The local file to save the downloaded to. |
completion_cb | A callback called on download complete. |
progress_cb | A callback called during the download operation. |
data | User data passed to both callbacks. |
job_ret | Job used to abort the download. |
EINA_TRUE
if the download start or EINA_FALSE
on failure.This function starts the download of the URL url
and saves it to dst
. url
must provide the protocol, including 'http://', 'ftp://' or 'file://'. Ecore_File must be compiled with CURL to download using http and ftp protocols. If dst
is ill-formed, or if it already exists, the function returns EINA_FALSE
. When the download is complete, the callback completion_cb
is called and data
is passed to it. The status
parameter of completion_cb
will be filled with the status of the download (200, 404,...). The progress_cb
is called during the download operation, each time a packet is received or when CURL wants. It can be used to display the percentage of the downloaded file. Return 0 from this callback, if provided, to continue the operation or anything else to abort the download. The only operations that can be aborted are those with protocol 'http' or 'ftp'. In that case job_ret
can be filled. It can be used with ecore_file_download_abort() or ecore_file_download_abort_all() to respectively abort one or all download operations. This function returns EINA_TRUE
if the download starts, EINA_FALSE
otherwise.
References EAPI.
Eina_Bool ecore_file_download_full | ( | const char * | url, |
const char * | dst, | ||
Ecore_File_Download_Completion_Cb | completion_cb, | ||
Ecore_File_Download_Progress_Cb | progress_cb, | ||
void * | data, | ||
Ecore_File_Download_Job ** | job_ret, | ||
Eina_Hash * | headers | ||
) |
Download the given url to the given destination with additional headers.
url | The complete url to download. |
dst | The local file to save the downloaded to. |
completion_cb | A callback called on download complete. |
progress_cb | A callback called during the download operation. |
data | User data passed to both callbacks. |
job_ret | Job used to abort the download. |
headers | pointer of header lists. |
EINA_TRUE
if the download start or EINA_FALSE
on failure. References EAPI.
void ecore_file_download_abort_all | ( | void | ) |
Abort all downloads.
This function aborts all the downloads that have been started by ecore_file_download(). It loops over the started downloads and call ecore_file_download_abort() for each of them. To abort only one specific download operation, call ecore_file_download_abort().
References ecore_file_download_abort(), and EINA_LIST_FREE.
void ecore_file_download_abort | ( | Ecore_File_Download_Job * | job | ) |
Abort the given download job and call the completion_cb callbck with a status of 1 (error).
job | The download job to abort. |
This function aborts a download operation started by ecore_file_download(). job
is the Ecore_File_Download_Job structure filled by ecore_file_download(). If it is NULL
, this function does nothing. To abort all the currently downloading operations, call ecore_file_download_abort_all().
References EAPI, ecore_con_url_data_get(), ecore_con_url_free(), and eina_list_remove().
Referenced by ecore_file_download_abort_all().
Eina_Bool ecore_file_download_protocol_available | ( | const char * | protocol | ) |
Check if the given protocol is available.
protocol | The protocol to check. |
EINA_TRUE
if protocol is handled, EINA_FALSE
otherwise.This function returns EINA_TRUE
if protocol
is supported, EINA_FALSE
otherwise. protocol
can be 'http://', 'ftp://' or 'file://'. Ecore_FILE must be compiled with CURL to handle http and ftp protocols.
References EINA_FALSE, and EINA_TRUE.