\hypertarget{group__Ecore__File__Group}{\section{Ecore\+\_\+\+File -\/ Files and directories convenience functions}
\label{group__Ecore__File__Group}\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__Ecore__File__Group_ga4fdec59d561b66134827381ec5105cf2}{typedef struct \+\_\+\+Ecore\+\_\+\+File\+\_\+\+Monitor \hyperlink{group__Ecore__File__Group_ga4fdec59d561b66134827381ec5105cf2}{Ecore\+\_\+\+File\+\_\+\+Monitor}}\label{group__Ecore__File__Group_ga4fdec59d561b66134827381ec5105cf2}

\begin{DoxyCompactList}\small\item\em Abstract type used when monitoring a directory. \end{DoxyCompactList}\item 
\hypertarget{group__Ecore__File__Group_gac13ffcf33aa05a26d8cd36b22918a8b9}{typedef struct \\*
\+\_\+\+Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Job \hyperlink{group__Ecore__File__Group_gac13ffcf33aa05a26d8cd36b22918a8b9}{Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Job}}\label{group__Ecore__File__Group_gac13ffcf33aa05a26d8cd36b22918a8b9}

\begin{DoxyCompactList}\small\item\em Abstract type used when aborting a download. \end{DoxyCompactList}\item 
\hypertarget{group__Ecore__File__Group_ga02c8c65e8e9a7e4b3740d84b4397d90c}{typedef enum \hyperlink{group__Ecore__File__Group_gac8673e397a2f2e7ee03f814d118d03b5}{\+\_\+\+Ecore\+\_\+\+File\+\_\+\+Event} {\bfseries Ecore\+\_\+\+File\+\_\+\+Event}}\label{group__Ecore__File__Group_ga02c8c65e8e9a7e4b3740d84b4397d90c}

\item 
\hypertarget{group__Ecore__File__Group_ga65d84a5d2abfc494f103ef3fe0de6e34}{typedef void($\ast$ \hyperlink{group__Ecore__File__Group_ga65d84a5d2abfc494f103ef3fe0de6e34}{Ecore\+\_\+\+File\+\_\+\+Monitor\+\_\+\+Cb} )(void $\ast$data, \hyperlink{group__Ecore__File__Group_ga4fdec59d561b66134827381ec5105cf2}{Ecore\+\_\+\+File\+\_\+\+Monitor} $\ast$em, Ecore\+\_\+\+File\+\_\+\+Event event, const char $\ast$path)}\label{group__Ecore__File__Group_ga65d84a5d2abfc494f103ef3fe0de6e34}

\begin{DoxyCompactList}\small\item\em Callback type used when a monitored directory has changes. \end{DoxyCompactList}\item 
\hypertarget{group__Ecore__File__Group_ga71ca51b9726d274b1b750b021fdb8730}{typedef void($\ast$ \hyperlink{group__Ecore__File__Group_ga71ca51b9726d274b1b750b021fdb8730}{Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Completion\+\_\+\+Cb} )(void $\ast$data, const char $\ast$file, int status)}\label{group__Ecore__File__Group_ga71ca51b9726d274b1b750b021fdb8730}

\begin{DoxyCompactList}\small\item\em Callback type used when a download is finished. \end{DoxyCompactList}\item 
\hypertarget{group__Ecore__File__Group_gaf69fc84b65f638ab9014ce5870e0d664}{typedef enum \\*
\hyperlink{group__Ecore__File__Group_gaf2261d7075a4ccb5a3e1821290ca97ca}{\+\_\+\+Ecore\+\_\+\+File\+\_\+\+Progress\+\_\+\+Return} {\bfseries Ecore\+\_\+\+File\+\_\+\+Progress\+\_\+\+Return}}\label{group__Ecore__File__Group_gaf69fc84b65f638ab9014ce5870e0d664}

\item 
\hypertarget{group__Ecore__File__Group_ga829dc96dbd2cb2bda6d2e8308b3fa24b}{typedef int($\ast$ \hyperlink{group__Ecore__File__Group_ga829dc96dbd2cb2bda6d2e8308b3fa24b}{Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Progress\+\_\+\+Cb} )(void $\ast$data, const char $\ast$file, long int dltotal, long int dlnow, long int ultotal, long int ulnow)}\label{group__Ecore__File__Group_ga829dc96dbd2cb2bda6d2e8308b3fa24b}

\begin{DoxyCompactList}\small\item\em Callback type used while a download is in progress. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{group__Ecore__File__Group_gac8673e397a2f2e7ee03f814d118d03b5}{\+\_\+\+Ecore\+\_\+\+File\+\_\+\+Event} \{ \\*
\hyperlink{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5a5b6731602105064764529adac4d1264f}{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+N\+O\+N\+E}, 
\\*
\hyperlink{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5a2c6fef381c6d027d6dfd9e9cf211fa67}{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+R\+E\+A\+T\+E\+D\+\_\+\+F\+I\+L\+E}, 
\\*
\hyperlink{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5a32961ee791cf962f8f1de26664e2b6fc}{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+R\+E\+A\+T\+E\+D\+\_\+\+D\+I\+R\+E\+C\+T\+O\+R\+Y}, 
\\*
\hyperlink{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5a09a4bf150129aadfca5d84361ee8607b}{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+D\+\_\+\+F\+I\+L\+E}, 
\\*
\hyperlink{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5a41917336c75e34e825ba34e0cacc3515}{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+D\+\_\+\+D\+I\+R\+E\+C\+T\+O\+R\+Y}, 
\\*
\hyperlink{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5a728ccffd07a101b7c7377dfd48a71224}{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+D\+\_\+\+S\+E\+L\+F}, 
\\*
\hyperlink{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5ab284e0b8654545672937914a9c838973}{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+M\+O\+D\+I\+F\+I\+E\+D}, 
\\*
\hyperlink{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5ac82f89c8c4ee15891af196c7c26a5772}{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+L\+O\+S\+E\+D}
 \}
\begin{DoxyCompactList}\small\item\em The event type returned when a file or directory is monitored. \end{DoxyCompactList}\item 
enum \hyperlink{group__Ecore__File__Group_gaf2261d7075a4ccb5a3e1821290ca97ca}{\+\_\+\+Ecore\+\_\+\+File\+\_\+\+Progress\+\_\+\+Return} \{ \\*
\hyperlink{group__Ecore__File__Group_ggaf2261d7075a4ccb5a3e1821290ca97caa034acca14263fec55dbcb7162a7cbe1d}{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+P\+R\+O\+G\+R\+E\+S\+S\+\_\+\+C\+O\+N\+T\+I\+N\+U\+E} = 0, 
\\*
\hyperlink{group__Ecore__File__Group_ggaf2261d7075a4ccb5a3e1821290ca97caa255e0cbdd2f78fd1fb6f5bc8dcf1204a}{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+P\+R\+O\+G\+R\+E\+S\+S\+\_\+\+A\+B\+O\+R\+T} = 1
 \}
\begin{DoxyCompactList}\small\item\em What to do with the download as a return from the Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Progress\+\_\+\+Cb function, if provided. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \hyperlink{group__Ecore__File__Group_gaac9350c7cd245595244e1bb5e2900711}{ecore\+\_\+file\+\_\+init} ()
\begin{DoxyCompactList}\small\item\em Initialize the Ecore\+\_\+\+File library. \end{DoxyCompactList}\item 
int \hyperlink{group__Ecore__File__Group_gae55c5ea738ffaae2ca8887e3689f0e73}{ecore\+\_\+file\+\_\+shutdown} ()
\begin{DoxyCompactList}\small\item\em Shut down the Ecore\+\_\+\+File library. \end{DoxyCompactList}\item 
long long \hyperlink{group__Ecore__File__Group_gaaef663ea76aae7aeba5814f1b8f2a013}{ecore\+\_\+file\+\_\+mod\+\_\+time} (const char $\ast$file)
\begin{DoxyCompactList}\small\item\em Get the time of the last modification to the given file. \end{DoxyCompactList}\item 
long long \hyperlink{group__Ecore__File__Group_ga6ac9d3d430a6110467ca3e2ac96a8851}{ecore\+\_\+file\+\_\+size} (const char $\ast$file)
\begin{DoxyCompactList}\small\item\em Get the size of the given file. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__File__Group_gaf5a3cc8bd9bf69a3ebce0678fe799016}{ecore\+\_\+file\+\_\+exists} (const char $\ast$file)
\begin{DoxyCompactList}\small\item\em Check if the given file exists. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__File__Group_ga2b8800b3ecf0c96fb2e47737827ed70f}{ecore\+\_\+file\+\_\+is\+\_\+dir} (const char $\ast$file)
\begin{DoxyCompactList}\small\item\em Check if the given file is a directory. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__File__Group_gafdfe259d9a595dc05c8fc725342b253c}{ecore\+\_\+file\+\_\+mkdir} (const char $\ast$dir)
\begin{DoxyCompactList}\small\item\em Create a new directory. \end{DoxyCompactList}\item 
int \hyperlink{group__Ecore__File__Group_ga609a0f775c9715843a42de504e034ad4}{ecore\+\_\+file\+\_\+mkdirs} (const char $\ast$$\ast$dirs)
\begin{DoxyCompactList}\small\item\em Create complete directory in a batch. \end{DoxyCompactList}\item 
int \hyperlink{group__Ecore__File__Group_gacf70d8b8ad53aa3e23a7351ed5f16b14}{ecore\+\_\+file\+\_\+mksubdirs} (const char $\ast$base, const char $\ast$$\ast$subdirs)
\begin{DoxyCompactList}\small\item\em Create complete list of sub-\/directories in a batch (optimized). \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__File__Group_ga62cef63e255470c97a4d95963a3a07b1}{ecore\+\_\+file\+\_\+rmdir} (const char $\ast$dir)
\begin{DoxyCompactList}\small\item\em Delete the given directory. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__File__Group_ga38fa7db112c1fc3c6ca6dcc367f036bb}{ecore\+\_\+file\+\_\+unlink} (const char $\ast$file)
\begin{DoxyCompactList}\small\item\em Delete the given file. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__File__Group_ga67811f9072dc5bbc10a63c056b0df9d4}{ecore\+\_\+file\+\_\+remove} (const char $\ast$file)
\begin{DoxyCompactList}\small\item\em Remove the given file or directory. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__File__Group_ga6e2d09d544f8e2b53c9518d521e1efd0}{ecore\+\_\+file\+\_\+recursive\+\_\+rm} (const char $\ast$dir)
\begin{DoxyCompactList}\small\item\em Delete the given directory and all its contents. \end{DoxyCompactList}\item 
\hypertarget{group__Ecore__File__Group_ga66e3331e3d2af24a01413eb8aacfe902}{static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} {\bfseries \+\_\+ecore\+\_\+file\+\_\+mkpath\+\_\+if\+\_\+not\+\_\+exists} (const char $\ast$path)}\label{group__Ecore__File__Group_ga66e3331e3d2af24a01413eb8aacfe902}

\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__File__Group_ga12cd44f20708fcc4a123dea675a33a93}{ecore\+\_\+file\+\_\+mkpath} (const char $\ast$path)
\begin{DoxyCompactList}\small\item\em Create a complete path. \end{DoxyCompactList}\item 
int \hyperlink{group__Ecore__File__Group_ga53017b49303ea8742096462fd7398f82}{ecore\+\_\+file\+\_\+mkpaths} (const char $\ast$$\ast$paths)
\begin{DoxyCompactList}\small\item\em Create complete paths in a batch. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__File__Group_ga93de3e691ec32bb8220545f9d807e3e5}{ecore\+\_\+file\+\_\+cp} (const char $\ast$src, const char $\ast$dst)
\begin{DoxyCompactList}\small\item\em Copy the given file to the given destination. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__File__Group_gadcb442b00a20cb19e2cd84fa9910b9d6}{ecore\+\_\+file\+\_\+mv} (const char $\ast$src, const char $\ast$dst)
\begin{DoxyCompactList}\small\item\em Move the given file to the given destination. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__File__Group_gabac9e816fc64684cb2e9d8c7c4443818}{ecore\+\_\+file\+\_\+symlink} (const char $\ast$src, const char $\ast$dest)
\begin{DoxyCompactList}\small\item\em Create a symbolic link. \end{DoxyCompactList}\item 
char $\ast$ \hyperlink{group__Ecore__File__Group_ga062018ae501d68814d586483391b9daa}{ecore\+\_\+file\+\_\+realpath} (const char $\ast$file)
\begin{DoxyCompactList}\small\item\em Get the canonicalized absolute path name. \end{DoxyCompactList}\item 
const char $\ast$ \hyperlink{group__Ecore__File__Group_ga5f5fe7219c6288fecaa840f81c035cb7}{ecore\+\_\+file\+\_\+file\+\_\+get} (const char $\ast$path)
\begin{DoxyCompactList}\small\item\em Get the filename from a given path. \end{DoxyCompactList}\item 
char $\ast$ \hyperlink{group__Ecore__File__Group_gac806bae3ba255661ad7cc814f4b12857}{ecore\+\_\+file\+\_\+dir\+\_\+get} (const char $\ast$file)
\begin{DoxyCompactList}\small\item\em Get the directory where the given file resides. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__File__Group_ga3b844d86804b9566aac515becda9dbf2}{ecore\+\_\+file\+\_\+can\+\_\+read} (const char $\ast$file)
\begin{DoxyCompactList}\small\item\em Check if the given file can be read. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__File__Group_gaa32b8720b401b8677cec4b12da261a6d}{ecore\+\_\+file\+\_\+can\+\_\+write} (const char $\ast$file)
\begin{DoxyCompactList}\small\item\em Check if the given file can be written. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__File__Group_ga92b7bb460e4d4e92a12c0c144fb69feb}{ecore\+\_\+file\+\_\+can\+\_\+exec} (const char $\ast$file)
\begin{DoxyCompactList}\small\item\em Check if the given file can be executed. \end{DoxyCompactList}\item 
char $\ast$ \hyperlink{group__Ecore__File__Group_ga289b55071970aceb0f2fc70cb0f8647d}{ecore\+\_\+file\+\_\+readlink} (const char $\ast$lnk)
\begin{DoxyCompactList}\small\item\em Get the path pointed by the given link. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__List__Group_ga3295e1210efea1fb0fd6acbf3cbc1f29}{Eina\+\_\+\+List} $\ast$ \hyperlink{group__Ecore__File__Group_gab7baa24c2abea205b4d1f92397f1bda0}{ecore\+\_\+file\+\_\+ls} (const char $\ast$dir)
\begin{DoxyCompactList}\small\item\em Get the list of the files and directories in the given directory. \end{DoxyCompactList}\item 
char $\ast$ \hyperlink{group__Ecore__File__Group_gab01d35474ff7390e41e19609712f6923}{ecore\+\_\+file\+\_\+app\+\_\+exe\+\_\+get} (const char $\ast$app)
\begin{DoxyCompactList}\small\item\em Return the executable from the given command. \end{DoxyCompactList}\item 
char $\ast$ \hyperlink{group__Ecore__File__Group_ga0d33ee025d316f91c179bd6cd5f9a9d7}{ecore\+\_\+file\+\_\+escape\+\_\+name} (const char $\ast$filename)
\begin{DoxyCompactList}\small\item\em Add the escape sequence ('\textbackslash{}') to the given file name. \end{DoxyCompactList}\item 
char $\ast$ \hyperlink{group__Ecore__File__Group_ga04e08638c8ba981a6419e64c19b4688b}{ecore\+\_\+file\+\_\+strip\+\_\+ext} (const char $\ast$path)
\begin{DoxyCompactList}\small\item\em Remove the extension from the given file name. \end{DoxyCompactList}\item 
int \hyperlink{group__Ecore__File__Group_ga5f6777eb4beea434372df0aa7357979b}{ecore\+\_\+file\+\_\+dir\+\_\+is\+\_\+empty} (const char $\ast$dir)
\begin{DoxyCompactList}\small\item\em Check if the given directory is empty. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \hyperlink{group__Ecore__File__Group_ga4fdec59d561b66134827381ec5105cf2}{Ecore\+\_\+\+File\+\_\+\+Monitor} $\ast$ \hyperlink{group__Ecore__File__Group_ga7d71d00f7b8a1a81a2938989f7da01c7}{ecore\+\_\+file\+\_\+monitor\+\_\+add} (const char $\ast$path, \hyperlink{group__Ecore__File__Group_ga65d84a5d2abfc494f103ef3fe0de6e34}{Ecore\+\_\+\+File\+\_\+\+Monitor\+\_\+\+Cb} func, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Monitor the given path using inotify, Windows notification, or polling. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void \hyperlink{group__Ecore__File__Group_ga36214769a9ef953f4d2ddcef0259a651}{ecore\+\_\+file\+\_\+monitor\+\_\+del} (\hyperlink{group__Ecore__File__Group_ga4fdec59d561b66134827381ec5105cf2}{Ecore\+\_\+\+File\+\_\+\+Monitor} $\ast$em)
\begin{DoxyCompactList}\small\item\em Stop the monitoring of the given path. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} const char $\ast$ \hyperlink{group__Ecore__File__Group_ga2776918fe65501483d67f61c7ab63340}{ecore\+\_\+file\+\_\+monitor\+\_\+path\+\_\+get} (\hyperlink{group__Ecore__File__Group_ga4fdec59d561b66134827381ec5105cf2}{Ecore\+\_\+\+File\+\_\+\+Monitor} $\ast$em)
\begin{DoxyCompactList}\small\item\em Get the monitored path. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__File__Group_ga0b979b4dc509a159f087136743e8fc74}{ecore\+\_\+file\+\_\+path\+\_\+dir\+\_\+exists} (const char $\ast$in\+\_\+dir)
\begin{DoxyCompactList}\small\item\em Check if the given directory is in P\+A\+T\+H. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__File__Group_ga0826230d24ff7834c9c10f1cbc82c2ed}{ecore\+\_\+file\+\_\+app\+\_\+installed} (const char $\ast$exe)
\begin{DoxyCompactList}\small\item\em Check if the given application is installed. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \hyperlink{group__Eina__List__Group_ga3295e1210efea1fb0fd6acbf3cbc1f29}{Eina\+\_\+\+List} $\ast$ \hyperlink{group__Ecore__File__Group_gaafdd314a82446206de611bfafb1d2776}{ecore\+\_\+file\+\_\+app\+\_\+list} (void)
\begin{DoxyCompactList}\small\item\em Get a list of all the applications installed on the system. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__File__Group_ga3ec2d36d0e56daf214199fd2e2307caa}{ecore\+\_\+file\+\_\+download} (const char $\ast$url, const char $\ast$dst, \hyperlink{group__Ecore__File__Group_ga71ca51b9726d274b1b750b021fdb8730}{Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Completion\+\_\+\+Cb} completion\+\_\+cb, \hyperlink{group__Ecore__File__Group_ga829dc96dbd2cb2bda6d2e8308b3fa24b}{Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Progress\+\_\+\+Cb} progress\+\_\+cb, void $\ast$data, \hyperlink{group__Ecore__File__Group_gac13ffcf33aa05a26d8cd36b22918a8b9}{Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Job} $\ast$$\ast$job\+\_\+ret)
\begin{DoxyCompactList}\small\item\em Download the given url to the given destination. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__File__Group_ga79099348cfad7e1da8158470f058db15}{ecore\+\_\+file\+\_\+download\+\_\+full} (const char $\ast$url, const char $\ast$dst, \hyperlink{group__Ecore__File__Group_ga71ca51b9726d274b1b750b021fdb8730}{Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Completion\+\_\+\+Cb} completion\+\_\+cb, \hyperlink{group__Ecore__File__Group_ga829dc96dbd2cb2bda6d2e8308b3fa24b}{Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Progress\+\_\+\+Cb} progress\+\_\+cb, void $\ast$data, \hyperlink{group__Ecore__File__Group_gac13ffcf33aa05a26d8cd36b22918a8b9}{Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Job} $\ast$$\ast$job\+\_\+ret, \hyperlink{group__Eina__Hash__Group_ga9a89d7d3ee260d3a60572ebf651b07e0}{Eina\+\_\+\+Hash} $\ast$headers)
\begin{DoxyCompactList}\small\item\em Download the given url to the given destination with additional headers. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void \hyperlink{group__Ecore__File__Group_ga70a16572e7a68d86fc73b2832ee61f40}{ecore\+\_\+file\+\_\+download\+\_\+abort\+\_\+all} (void)
\begin{DoxyCompactList}\small\item\em Abort all downloads. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void \hyperlink{group__Ecore__File__Group_gaab33a141bc148f306f4023df3f106ab9}{ecore\+\_\+file\+\_\+download\+\_\+abort} (\hyperlink{group__Ecore__File__Group_gac13ffcf33aa05a26d8cd36b22918a8b9}{Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Job} $\ast$job)
\begin{DoxyCompactList}\small\item\em Abort the given download job and call the completion\+\_\+cb callbck with a status of 1 (error). \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__File__Group_gab1aa4e6a7be639e47be2c0a10be7124e}{ecore\+\_\+file\+\_\+download\+\_\+protocol\+\_\+available} (const char $\ast$protocol)
\begin{DoxyCompactList}\small\item\em Check if the given protocol is available. \end{DoxyCompactList}\item 
\hypertarget{group__Ecore__File__Group_ga5fe4c28da06d41c0d46a0d0afdad5010}{static int {\bfseries \+\_\+ecore\+\_\+file\+\_\+download\+\_\+url\+\_\+compare\+\_\+job} (const void $\ast$data1, const void $\ast$data2)}\label{group__Ecore__File__Group_ga5fe4c28da06d41c0d46a0d0afdad5010}

\item 
\hypertarget{group__Ecore__File__Group_ga0f89d6390f42cd150374b5150d2655ae}{static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} {\bfseries \+\_\+ecore\+\_\+file\+\_\+download\+\_\+url\+\_\+complete\+\_\+cb} (void $\ast$data, int type, void $\ast$event)}\label{group__Ecore__File__Group_ga0f89d6390f42cd150374b5150d2655ae}

\item 
\hypertarget{group__Ecore__File__Group_gae12188f2e371f2e2c0a19db2dc88a6e4}{static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} {\bfseries \+\_\+ecore\+\_\+file\+\_\+download\+\_\+url\+\_\+progress\+\_\+cb} (void $\ast$data, int type, void $\ast$event)}\label{group__Ecore__File__Group_gae12188f2e371f2e2c0a19db2dc88a6e4}

\item 
\hypertarget{group__Ecore__File__Group_ga4a9a92d95ddb529b9c6202a74c43786c}{\hyperlink{group__Ecore__File__Group_gac13ffcf33aa05a26d8cd36b22918a8b9}{Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Job} $\ast$ {\bfseries \+\_\+ecore\+\_\+file\+\_\+download\+\_\+curl} (const char $\ast$url, const char $\ast$dst, \hyperlink{group__Ecore__File__Group_ga71ca51b9726d274b1b750b021fdb8730}{Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Completion\+\_\+\+Cb} completion\+\_\+cb, \hyperlink{group__Ecore__File__Group_ga829dc96dbd2cb2bda6d2e8308b3fa24b}{Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Progress\+\_\+\+Cb} progress\+\_\+cb, void $\ast$data, \hyperlink{group__Eina__Hash__Group_ga9a89d7d3ee260d3a60572ebf651b07e0}{Eina\+\_\+\+Hash} $\ast$headers)}\label{group__Ecore__File__Group_ga4a9a92d95ddb529b9c6202a74c43786c}

\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__Ecore__File__Group_ga737792f6231c73c506e04a1a9daf721e}{static mode\+\_\+t {\bfseries default\+\_\+mode} = S\+\_\+\+I\+R\+U\+S\+R $\vert$ S\+\_\+\+I\+W\+U\+S\+R $\vert$ S\+\_\+\+I\+X\+U\+S\+R $\vert$ S\+\_\+\+I\+R\+G\+R\+P $\vert$ S\+\_\+\+I\+X\+G\+R\+P $\vert$ S\+\_\+\+I\+R\+O\+T\+H $\vert$ S\+\_\+\+I\+X\+O\+T\+H}\label{group__Ecore__File__Group_ga737792f6231c73c506e04a1a9daf721e}

\end{DoxyCompactItemize}


\subsection{Detailed Description}


\subsection{Enumeration Type Documentation}
\hypertarget{group__Ecore__File__Group_gac8673e397a2f2e7ee03f814d118d03b5}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!\+\_\+\+Ecore\+\_\+\+File\+\_\+\+Event@{\+\_\+\+Ecore\+\_\+\+File\+\_\+\+Event}}
\index{\+\_\+\+Ecore\+\_\+\+File\+\_\+\+Event@{\+\_\+\+Ecore\+\_\+\+File\+\_\+\+Event}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{\+\_\+\+Ecore\+\_\+\+File\+\_\+\+Event}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf \+\_\+\+Ecore\+\_\+\+File\+\_\+\+Event}}}\label{group__Ecore__File__Group_gac8673e397a2f2e7ee03f814d118d03b5}


The event type returned when a file or directory is monitored. 

\begin{Desc}
\item[Enumerator]\par
\begin{description}
\index{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+N\+O\+N\+E@{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+N\+O\+N\+E}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+N\+O\+N\+E@{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+N\+O\+N\+E}}\item[{\em 
\hypertarget{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5a5b6731602105064764529adac4d1264f}{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+N\+O\+N\+E}\label{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5a5b6731602105064764529adac4d1264f}
}]No event. \index{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+R\+E\+A\+T\+E\+D\+\_\+\+F\+I\+L\+E@{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+R\+E\+A\+T\+E\+D\+\_\+\+F\+I\+L\+E}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+R\+E\+A\+T\+E\+D\+\_\+\+F\+I\+L\+E@{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+R\+E\+A\+T\+E\+D\+\_\+\+F\+I\+L\+E}}\item[{\em 
\hypertarget{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5a2c6fef381c6d027d6dfd9e9cf211fa67}{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+R\+E\+A\+T\+E\+D\+\_\+\+F\+I\+L\+E}\label{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5a2c6fef381c6d027d6dfd9e9cf211fa67}
}]Created file event. \index{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+R\+E\+A\+T\+E\+D\+\_\+\+D\+I\+R\+E\+C\+T\+O\+R\+Y@{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+R\+E\+A\+T\+E\+D\+\_\+\+D\+I\+R\+E\+C\+T\+O\+R\+Y}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+R\+E\+A\+T\+E\+D\+\_\+\+D\+I\+R\+E\+C\+T\+O\+R\+Y@{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+R\+E\+A\+T\+E\+D\+\_\+\+D\+I\+R\+E\+C\+T\+O\+R\+Y}}\item[{\em 
\hypertarget{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5a32961ee791cf962f8f1de26664e2b6fc}{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+R\+E\+A\+T\+E\+D\+\_\+\+D\+I\+R\+E\+C\+T\+O\+R\+Y}\label{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5a32961ee791cf962f8f1de26664e2b6fc}
}]Created directory event. \index{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+D\+\_\+\+F\+I\+L\+E@{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+D\+\_\+\+F\+I\+L\+E}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+D\+\_\+\+F\+I\+L\+E@{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+D\+\_\+\+F\+I\+L\+E}}\item[{\em 
\hypertarget{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5a09a4bf150129aadfca5d84361ee8607b}{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+D\+\_\+\+F\+I\+L\+E}\label{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5a09a4bf150129aadfca5d84361ee8607b}
}]Deleted file event. \index{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+D\+\_\+\+D\+I\+R\+E\+C\+T\+O\+R\+Y@{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+D\+\_\+\+D\+I\+R\+E\+C\+T\+O\+R\+Y}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+D\+\_\+\+D\+I\+R\+E\+C\+T\+O\+R\+Y@{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+D\+\_\+\+D\+I\+R\+E\+C\+T\+O\+R\+Y}}\item[{\em 
\hypertarget{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5a41917336c75e34e825ba34e0cacc3515}{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+D\+\_\+\+D\+I\+R\+E\+C\+T\+O\+R\+Y}\label{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5a41917336c75e34e825ba34e0cacc3515}
}]Deleted directory event. \index{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+D\+\_\+\+S\+E\+L\+F@{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+D\+\_\+\+S\+E\+L\+F}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+D\+\_\+\+S\+E\+L\+F@{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+D\+\_\+\+S\+E\+L\+F}}\item[{\em 
\hypertarget{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5a728ccffd07a101b7c7377dfd48a71224}{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+D\+\_\+\+S\+E\+L\+F}\label{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5a728ccffd07a101b7c7377dfd48a71224}
}]Deleted monitored directory event. \index{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+M\+O\+D\+I\+F\+I\+E\+D@{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+M\+O\+D\+I\+F\+I\+E\+D}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+M\+O\+D\+I\+F\+I\+E\+D@{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+M\+O\+D\+I\+F\+I\+E\+D}}\item[{\em 
\hypertarget{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5ab284e0b8654545672937914a9c838973}{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+M\+O\+D\+I\+F\+I\+E\+D}\label{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5ab284e0b8654545672937914a9c838973}
}]Modified file or directory event. \index{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+L\+O\+S\+E\+D@{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+L\+O\+S\+E\+D}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+L\+O\+S\+E\+D@{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+L\+O\+S\+E\+D}}\item[{\em 
\hypertarget{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5ac82f89c8c4ee15891af196c7c26a5772}{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+L\+O\+S\+E\+D}\label{group__Ecore__File__Group_ggac8673e397a2f2e7ee03f814d118d03b5ac82f89c8c4ee15891af196c7c26a5772}
}]Closed file event. \end{description}
\end{Desc}
\hypertarget{group__Ecore__File__Group_gaf2261d7075a4ccb5a3e1821290ca97ca}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!\+\_\+\+Ecore\+\_\+\+File\+\_\+\+Progress\+\_\+\+Return@{\+\_\+\+Ecore\+\_\+\+File\+\_\+\+Progress\+\_\+\+Return}}
\index{\+\_\+\+Ecore\+\_\+\+File\+\_\+\+Progress\+\_\+\+Return@{\+\_\+\+Ecore\+\_\+\+File\+\_\+\+Progress\+\_\+\+Return}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{\+\_\+\+Ecore\+\_\+\+File\+\_\+\+Progress\+\_\+\+Return}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf \+\_\+\+Ecore\+\_\+\+File\+\_\+\+Progress\+\_\+\+Return}}}\label{group__Ecore__File__Group_gaf2261d7075a4ccb5a3e1821290ca97ca}


What to do with the download as a return from the Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Progress\+\_\+\+Cb function, if provided. 

\begin{Desc}
\item[Enumerator]\par
\begin{description}
\index{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+P\+R\+O\+G\+R\+E\+S\+S\+\_\+\+C\+O\+N\+T\+I\+N\+U\+E@{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+P\+R\+O\+G\+R\+E\+S\+S\+\_\+\+C\+O\+N\+T\+I\+N\+U\+E}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+P\+R\+O\+G\+R\+E\+S\+S\+\_\+\+C\+O\+N\+T\+I\+N\+U\+E@{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+P\+R\+O\+G\+R\+E\+S\+S\+\_\+\+C\+O\+N\+T\+I\+N\+U\+E}}\item[{\em 
\hypertarget{group__Ecore__File__Group_ggaf2261d7075a4ccb5a3e1821290ca97caa034acca14263fec55dbcb7162a7cbe1d}{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+P\+R\+O\+G\+R\+E\+S\+S\+\_\+\+C\+O\+N\+T\+I\+N\+U\+E}\label{group__Ecore__File__Group_ggaf2261d7075a4ccb5a3e1821290ca97caa034acca14263fec55dbcb7162a7cbe1d}
}]Continue the download. \index{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+P\+R\+O\+G\+R\+E\+S\+S\+\_\+\+A\+B\+O\+R\+T@{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+P\+R\+O\+G\+R\+E\+S\+S\+\_\+\+A\+B\+O\+R\+T}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+P\+R\+O\+G\+R\+E\+S\+S\+\_\+\+A\+B\+O\+R\+T@{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+P\+R\+O\+G\+R\+E\+S\+S\+\_\+\+A\+B\+O\+R\+T}}\item[{\em 
\hypertarget{group__Ecore__File__Group_ggaf2261d7075a4ccb5a3e1821290ca97caa255e0cbdd2f78fd1fb6f5bc8dcf1204a}{E\+C\+O\+R\+E\+\_\+\+F\+I\+L\+E\+\_\+\+P\+R\+O\+G\+R\+E\+S\+S\+\_\+\+A\+B\+O\+R\+T}\label{group__Ecore__File__Group_ggaf2261d7075a4ccb5a3e1821290ca97caa255e0cbdd2f78fd1fb6f5bc8dcf1204a}
}]Abort the download. \end{description}
\end{Desc}


\subsection{Function Documentation}
\hypertarget{group__Ecore__File__Group_gaac9350c7cd245595244e1bb5e2900711}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+init@{ecore\+\_\+file\+\_\+init}}
\index{ecore\+\_\+file\+\_\+init@{ecore\+\_\+file\+\_\+init}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+init}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} int ecore\+\_\+file\+\_\+init (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_gaac9350c7cd245595244e1bb5e2900711}


Initialize the Ecore\+\_\+\+File library. 

\begin{DoxyReturn}{Returns}
1 or greater on success, 0 on error.
\end{DoxyReturn}
This function sets up Ecore\+\_\+\+File and the services it will use (monitoring, downloading, P\+A\+T\+H 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 \hyperlink{group__Ecore__File__Group_gae55c5ea738ffaae2ca8887e3689f0e73}{ecore\+\_\+file\+\_\+shutdown()} to shut down the Ecore\+\_\+\+File library. 

References ecore\+\_\+init(), eina\+\_\+log\+\_\+domain\+\_\+register(), and E\+I\+N\+A\+\_\+\+L\+O\+G\+\_\+\+E\+R\+R.



Referenced by efreet\+\_\+init(), and efreet\+\_\+mime\+\_\+init().

\hypertarget{group__Ecore__File__Group_gae55c5ea738ffaae2ca8887e3689f0e73}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+shutdown@{ecore\+\_\+file\+\_\+shutdown}}
\index{ecore\+\_\+file\+\_\+shutdown@{ecore\+\_\+file\+\_\+shutdown}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+shutdown}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} int ecore\+\_\+file\+\_\+shutdown (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_gae55c5ea738ffaae2ca8887e3689f0e73}


Shut down the Ecore\+\_\+\+File library. 

\begin{DoxyReturn}{Returns}
0 when the library is completely shut down, 1 or greater otherwise.
\end{DoxyReturn}
This function shuts down the Ecore\+\_\+\+File library. It returns 0 when it has been called the same number of times than \hyperlink{group__Ecore__File__Group_gaac9350c7cd245595244e1bb5e2900711}{ecore\+\_\+file\+\_\+init()}. In that case it shuts down all the services it uses. 

References ecore\+\_\+shutdown(), and eina\+\_\+log\+\_\+domain\+\_\+unregister().



Referenced by efreet\+\_\+init(), efreet\+\_\+mime\+\_\+init(), efreet\+\_\+mime\+\_\+shutdown(), and efreet\+\_\+shutdown().

\hypertarget{group__Ecore__File__Group_gaaef663ea76aae7aeba5814f1b8f2a013}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+mod\+\_\+time@{ecore\+\_\+file\+\_\+mod\+\_\+time}}
\index{ecore\+\_\+file\+\_\+mod\+\_\+time@{ecore\+\_\+file\+\_\+mod\+\_\+time}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+mod\+\_\+time}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} long long ecore\+\_\+file\+\_\+mod\+\_\+time (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{file}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_gaaef663ea76aae7aeba5814f1b8f2a013}


Get the time of the last modification to the given file. 


\begin{DoxyParams}{Parameters}
{\em file} & The name of the file. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Return the time of the last data modification, or 0 on failure.
\end{DoxyReturn}
This function returns the time of the last modification of {\ttfamily file}. On failure, it returns 0. 

Referenced by efreet\+\_\+desktop\+\_\+empty\+\_\+new().

\hypertarget{group__Ecore__File__Group_ga6ac9d3d430a6110467ca3e2ac96a8851}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+size@{ecore\+\_\+file\+\_\+size}}
\index{ecore\+\_\+file\+\_\+size@{ecore\+\_\+file\+\_\+size}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+size}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} long long ecore\+\_\+file\+\_\+size (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{file}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga6ac9d3d430a6110467ca3e2ac96a8851}


Get the size of the given file. 


\begin{DoxyParams}{Parameters}
{\em file} & The name of the file. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Return the size of the file in bytes, or 0 on failure.
\end{DoxyReturn}
This function returns the size of {\ttfamily file} in bytes. On failure, it returns 0. \hypertarget{group__Ecore__File__Group_gaf5a3cc8bd9bf69a3ebce0678fe799016}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+exists@{ecore\+\_\+file\+\_\+exists}}
\index{ecore\+\_\+file\+\_\+exists@{ecore\+\_\+file\+\_\+exists}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+exists}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} ecore\+\_\+file\+\_\+exists (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{file}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_gaf5a3cc8bd9bf69a3ebce0678fe799016}


Check if the given file exists. 


\begin{DoxyParams}{Parameters}
{\em file} & The name of the file. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if the {\ttfamily file} exists, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if {\ttfamily file} exists on local filesystem, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. 

References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.



Referenced by edje\+\_\+available\+\_\+modules\+\_\+get(), edje\+\_\+edit\+\_\+clean\+\_\+save\+\_\+as(), efreet\+\_\+desktop\+\_\+uncached\+\_\+new(), efreet\+\_\+menu\+\_\+async\+\_\+get(), efreet\+\_\+menu\+\_\+get(), efreet\+\_\+trash\+\_\+delete\+\_\+uri(), and efreet\+\_\+trash\+\_\+dir\+\_\+get().

\hypertarget{group__Ecore__File__Group_ga2b8800b3ecf0c96fb2e47737827ed70f}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+is\+\_\+dir@{ecore\+\_\+file\+\_\+is\+\_\+dir}}
\index{ecore\+\_\+file\+\_\+is\+\_\+dir@{ecore\+\_\+file\+\_\+is\+\_\+dir}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+is\+\_\+dir}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} ecore\+\_\+file\+\_\+is\+\_\+dir (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{file}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga2b8800b3ecf0c96fb2e47737827ed70f}


Check if the given file is a directory. 


\begin{DoxyParams}{Parameters}
{\em file} & The name of the file. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if the file exists and is a directory, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if {\ttfamily file} exists exists and is a directory on local filesystem, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. 

References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.



Referenced by ecore\+\_\+file\+\_\+app\+\_\+list(), ecore\+\_\+file\+\_\+mkpath(), and ecore\+\_\+file\+\_\+mksubdirs().

\hypertarget{group__Ecore__File__Group_gafdfe259d9a595dc05c8fc725342b253c}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+mkdir@{ecore\+\_\+file\+\_\+mkdir}}
\index{ecore\+\_\+file\+\_\+mkdir@{ecore\+\_\+file\+\_\+mkdir}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+mkdir}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} ecore\+\_\+file\+\_\+mkdir (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{dir}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_gafdfe259d9a595dc05c8fc725342b253c}


Create a new directory. 


\begin{DoxyParams}{Parameters}
{\em dir} & The name of the directory to create \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on successful creation, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function creates the directory {\ttfamily dir} with the mode S\+\_\+\+I\+R\+U\+S\+R $\vert$ S\+\_\+\+I\+W\+U\+S\+R $\vert$ S\+\_\+\+I\+X\+U\+S\+R $\vert$ S\+\_\+\+I\+R\+G\+R\+P $\vert$ S\+\_\+\+I\+X\+G\+R\+P $\vert$ S\+\_\+\+I\+R\+O\+T\+H $\vert$ S\+\_\+\+I\+X\+O\+T\+H. On success, it returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E}, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. 

References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.



Referenced by ecore\+\_\+file\+\_\+mkdirs(), and efreet\+\_\+trash\+\_\+empty\+\_\+trash().

\hypertarget{group__Ecore__File__Group_ga609a0f775c9715843a42de504e034ad4}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+mkdirs@{ecore\+\_\+file\+\_\+mkdirs}}
\index{ecore\+\_\+file\+\_\+mkdirs@{ecore\+\_\+file\+\_\+mkdirs}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+mkdirs}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} int ecore\+\_\+file\+\_\+mkdirs (
\begin{DoxyParamCaption}
\item[{const char $\ast$$\ast$}]{dirs}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga609a0f775c9715843a42de504e034ad4}


Create complete directory in a batch. 


\begin{DoxyParams}{Parameters}
{\em dirs} & The list of directories, null terminated. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The number of successful directories created, -\/1 if dirs is {\ttfamily N\+U\+L\+L}.
\end{DoxyReturn}
This function creates all the directories that are in the null terminated array {\ttfamily dirs}. The function loops over the directories and call \hyperlink{group__Ecore__File__Group_gafdfe259d9a595dc05c8fc725342b253c}{ecore\+\_\+file\+\_\+mkdir()}. This function returns -\/1 if {\ttfamily dirs} is {\ttfamily N\+U\+L\+L}, otherwise if returns the number of suceesfully created directories. 

References ecore\+\_\+file\+\_\+mkdir().

\hypertarget{group__Ecore__File__Group_gacf70d8b8ad53aa3e23a7351ed5f16b14}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+mksubdirs@{ecore\+\_\+file\+\_\+mksubdirs}}
\index{ecore\+\_\+file\+\_\+mksubdirs@{ecore\+\_\+file\+\_\+mksubdirs}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+mksubdirs}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} int ecore\+\_\+file\+\_\+mksubdirs (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{base, }
\item[{const char $\ast$$\ast$}]{subdirs}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_gacf70d8b8ad53aa3e23a7351ed5f16b14}


Create complete list of sub-\/directories in a batch (optimized). 


\begin{DoxyParams}{Parameters}
{\em base} & The base directory to act on. \\
\hline
{\em subdirs} & The list of directories, null terminated. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of successful directories created, -\/1 on failure.
\end{DoxyReturn}
This function creates all the directories that are in the null terminated array {\ttfamily dirs} in the {\ttfamily base} directory. If {\ttfamily base} does not exist, it will be created. The function loops over the directories and call \hyperlink{group__Ecore__File__Group_gafdfe259d9a595dc05c8fc725342b253c}{ecore\+\_\+file\+\_\+mkdir()}. The whole path of the directories must exist. So if base/a/b/c wants to be created, {\ttfamily subdirs} must contain \char`\"{}a\char`\"{}, \char`\"{}a/b\char`\"{} and \char`\"{}a/b/c\char`\"{}, in that order. This function returns -\/1 if {\ttfamily dirs} or {\ttfamily base} are {\ttfamily N\+U\+L\+L}, or if {\ttfamily base} is empty (\char`\"{}\textbackslash{}0\char`\"{}). It returns 0 is {\ttfamily base} is not a directory or invalid, or if it can't be created. Otherwise if returns the number of suceesfully created directories. 

References closedir(), ecore\+\_\+file\+\_\+is\+\_\+dir(), ecore\+\_\+file\+\_\+mkpath(), eina\+\_\+strlcpy(), and opendir().

\hypertarget{group__Ecore__File__Group_ga62cef63e255470c97a4d95963a3a07b1}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+rmdir@{ecore\+\_\+file\+\_\+rmdir}}
\index{ecore\+\_\+file\+\_\+rmdir@{ecore\+\_\+file\+\_\+rmdir}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+rmdir}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} ecore\+\_\+file\+\_\+rmdir (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{dir}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga62cef63e255470c97a4d95963a3a07b1}


Delete the given directory. 


\begin{DoxyParams}{Parameters}
{\em dir} & The name of the directory to delete. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function deletes {\ttfamily dir}. It returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. 

References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.



Referenced by ecore\+\_\+file\+\_\+recursive\+\_\+rm().

\hypertarget{group__Ecore__File__Group_ga38fa7db112c1fc3c6ca6dcc367f036bb}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+unlink@{ecore\+\_\+file\+\_\+unlink}}
\index{ecore\+\_\+file\+\_\+unlink@{ecore\+\_\+file\+\_\+unlink}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+unlink}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} ecore\+\_\+file\+\_\+unlink (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{file}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga38fa7db112c1fc3c6ca6dcc367f036bb}


Delete the given file. 


\begin{DoxyParams}{Parameters}
{\em file} & The name of the file to delete. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function deletes {\ttfamily file}. It returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. 

References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.



Referenced by ecore\+\_\+file\+\_\+mv(), and ecore\+\_\+file\+\_\+recursive\+\_\+rm().

\hypertarget{group__Ecore__File__Group_ga67811f9072dc5bbc10a63c056b0df9d4}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+remove@{ecore\+\_\+file\+\_\+remove}}
\index{ecore\+\_\+file\+\_\+remove@{ecore\+\_\+file\+\_\+remove}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+remove}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} ecore\+\_\+file\+\_\+remove (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{file}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga67811f9072dc5bbc10a63c056b0df9d4}


Remove the given file or directory. 


\begin{DoxyParams}{Parameters}
{\em file} & The name of the file or directory to delete. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function removes {\ttfamily file}. It returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. 

References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.

\hypertarget{group__Ecore__File__Group_ga6e2d09d544f8e2b53c9518d521e1efd0}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+recursive\+\_\+rm@{ecore\+\_\+file\+\_\+recursive\+\_\+rm}}
\index{ecore\+\_\+file\+\_\+recursive\+\_\+rm@{ecore\+\_\+file\+\_\+recursive\+\_\+rm}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+recursive\+\_\+rm}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} ecore\+\_\+file\+\_\+recursive\+\_\+rm (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{dir}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga6e2d09d544f8e2b53c9518d521e1efd0}


Delete the given directory and all its contents. 


\begin{DoxyParams}{Parameters}
{\em dir} & The name of the directory to delete. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function delete {\ttfamily dir} and all its contents. If {\ttfamily dir} is a link only the link is removed. It returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. 

References ecore\+\_\+file\+\_\+rmdir(), ecore\+\_\+file\+\_\+unlink(), E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, eina\+\_\+file\+\_\+direct\+\_\+ls(), E\+I\+N\+A\+\_\+\+I\+T\+E\+R\+A\+T\+O\+R\+\_\+\+F\+O\+R\+E\+A\+C\+H, eina\+\_\+iterator\+\_\+free(), E\+I\+N\+A\+\_\+\+T\+R\+U\+E, \+\_\+\+Eina\+\_\+\+File\+\_\+\+Direct\+\_\+\+Info\+::path, and readlink().



Referenced by efreet\+\_\+trash\+\_\+delete\+\_\+uri(), and efreet\+\_\+trash\+\_\+empty\+\_\+trash().

\hypertarget{group__Ecore__File__Group_ga12cd44f20708fcc4a123dea675a33a93}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+mkpath@{ecore\+\_\+file\+\_\+mkpath}}
\index{ecore\+\_\+file\+\_\+mkpath@{ecore\+\_\+file\+\_\+mkpath}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+mkpath}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} ecore\+\_\+file\+\_\+mkpath (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{path}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga12cd44f20708fcc4a123dea675a33a93}


Create a complete path. 


\begin{DoxyParams}{Parameters}
{\em path} & The path to create \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function creates {\ttfamily path} and all the subdirectories it contains. The separator is '/' or '\textbackslash{}'. If {\ttfamily path} exists, this function returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} immediately. It returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. 

References ecore\+\_\+file\+\_\+is\+\_\+dir(), E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.



Referenced by ecore\+\_\+file\+\_\+mkpaths(), ecore\+\_\+file\+\_\+mksubdirs(), and efreet\+\_\+trash\+\_\+dir\+\_\+get().

\hypertarget{group__Ecore__File__Group_ga53017b49303ea8742096462fd7398f82}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+mkpaths@{ecore\+\_\+file\+\_\+mkpaths}}
\index{ecore\+\_\+file\+\_\+mkpaths@{ecore\+\_\+file\+\_\+mkpaths}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+mkpaths}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} int ecore\+\_\+file\+\_\+mkpaths (
\begin{DoxyParamCaption}
\item[{const char $\ast$$\ast$}]{paths}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga53017b49303ea8742096462fd7398f82}


Create complete paths in a batch. 


\begin{DoxyParams}{Parameters}
{\em paths} & list of paths, null terminated. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of successful paths created, -\/1 if paths is N\+U\+L\+L.
\end{DoxyReturn}
This function creates all the directories that are in the null terminated array {\ttfamily paths}. The function loops over the directories and call \hyperlink{group__Ecore__File__Group_ga12cd44f20708fcc4a123dea675a33a93}{ecore\+\_\+file\+\_\+mkpath()}, hence on Windows, '\textbackslash{}' must be replaced by '/' before calling that function. This function returns -\/1 if {\ttfamily paths} is {\ttfamily N\+U\+L\+L}. Otherwise if returns the number of suceesfully created directories. 

References ecore\+\_\+file\+\_\+mkpath().

\hypertarget{group__Ecore__File__Group_ga93de3e691ec32bb8220545f9d807e3e5}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+cp@{ecore\+\_\+file\+\_\+cp}}
\index{ecore\+\_\+file\+\_\+cp@{ecore\+\_\+file\+\_\+cp}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+cp}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} ecore\+\_\+file\+\_\+cp (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{src, }
\item[{const char $\ast$}]{dst}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga93de3e691ec32bb8220545f9d807e3e5}


Copy the given file to the given destination. 


\begin{DoxyParams}{Parameters}
{\em src} & The name of the source file. \\
\hline
{\em dst} & The name of the destination file. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function copies {\ttfamily src} to {\ttfamily dst}. If the absolute path name of {\ttfamily src} and {\ttfamily dst} can not be computed, or if they are equal, or if the copy fails, the function returns {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E}, otherwise it returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E}. 

References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.



Referenced by ecore\+\_\+file\+\_\+mv().

\hypertarget{group__Ecore__File__Group_gadcb442b00a20cb19e2cd84fa9910b9d6}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+mv@{ecore\+\_\+file\+\_\+mv}}
\index{ecore\+\_\+file\+\_\+mv@{ecore\+\_\+file\+\_\+mv}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+mv}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} ecore\+\_\+file\+\_\+mv (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{src, }
\item[{const char $\ast$}]{dst}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_gadcb442b00a20cb19e2cd84fa9910b9d6}


Move the given file to the given destination. 


\begin{DoxyParams}{Parameters}
{\em src} & The name of the source file. \\
\hline
{\em dst} & The name of the destination file. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function moves {\ttfamily src} to {\ttfamily dst}. It returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. 

References ecore\+\_\+file\+\_\+cp(), ecore\+\_\+file\+\_\+dir\+\_\+get(), ecore\+\_\+file\+\_\+file\+\_\+get(), ecore\+\_\+file\+\_\+unlink(), E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, E\+I\+N\+A\+\_\+\+T\+R\+U\+E, mkstemp(), and rename.

\hypertarget{group__Ecore__File__Group_gabac9e816fc64684cb2e9d8c7c4443818}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+symlink@{ecore\+\_\+file\+\_\+symlink}}
\index{ecore\+\_\+file\+\_\+symlink@{ecore\+\_\+file\+\_\+symlink}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+symlink}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} ecore\+\_\+file\+\_\+symlink (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{src, }
\item[{const char $\ast$}]{dest}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_gabac9e816fc64684cb2e9d8c7c4443818}


Create a symbolic link. 


\begin{DoxyParams}{Parameters}
{\em src} & The name of the file to link. \\
\hline
{\em dest} & The name of link. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function create the symbolic link {\ttfamily dest} of {\ttfamily src}. This function does not work on Windows. It returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. 

References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, E\+I\+N\+A\+\_\+\+T\+R\+U\+E, and symlink().

\hypertarget{group__Ecore__File__Group_ga062018ae501d68814d586483391b9daa}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+realpath@{ecore\+\_\+file\+\_\+realpath}}
\index{ecore\+\_\+file\+\_\+realpath@{ecore\+\_\+file\+\_\+realpath}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+realpath}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} char $\ast$ ecore\+\_\+file\+\_\+realpath (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{file}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga062018ae501d68814d586483391b9daa}


Get the canonicalized absolute path name. 


\begin{DoxyParams}{Parameters}
{\em file} & The file path. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The canonicalized absolute pathname or an empty string on failure.
\end{DoxyReturn}
This function returns the absolute path name of {\ttfamily file} as a newly allocated string. If {\ttfamily file} is {\ttfamily N\+U\+L\+L}, 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. \hypertarget{group__Ecore__File__Group_ga5f5fe7219c6288fecaa840f81c035cb7}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+file\+\_\+get@{ecore\+\_\+file\+\_\+file\+\_\+get}}
\index{ecore\+\_\+file\+\_\+file\+\_\+get@{ecore\+\_\+file\+\_\+file\+\_\+get}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+file\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} const char $\ast$ ecore\+\_\+file\+\_\+file\+\_\+get (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{path}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga5f5fe7219c6288fecaa840f81c035cb7}


Get the filename from a given path. 


\begin{DoxyParams}{Parameters}
{\em path} & The complete path. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The file name.
\end{DoxyReturn}
This function returns the file name of {\ttfamily path}. If {\ttfamily path} is {\ttfamily N\+U\+L\+L}, the functions returns {\ttfamily N\+U\+L\+L}. 

Referenced by ecore\+\_\+file\+\_\+mv(), efreet\+\_\+trash\+\_\+delete\+\_\+uri(), and efreet\+\_\+util\+\_\+desktop\+\_\+exec\+\_\+find().

\hypertarget{group__Ecore__File__Group_gac806bae3ba255661ad7cc814f4b12857}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+dir\+\_\+get@{ecore\+\_\+file\+\_\+dir\+\_\+get}}
\index{ecore\+\_\+file\+\_\+dir\+\_\+get@{ecore\+\_\+file\+\_\+dir\+\_\+get}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+dir\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} char $\ast$ ecore\+\_\+file\+\_\+dir\+\_\+get (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{file}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_gac806bae3ba255661ad7cc814f4b12857}


Get the directory where the given file resides. 


\begin{DoxyParams}{Parameters}
{\em file} & The name of the file. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The directory name.
\end{DoxyReturn}
This function returns the directory where {\ttfamily file} resides as anewly allocated string. If {\ttfamily file} is {\ttfamily N\+U\+L\+L} or on error, this function returns {\ttfamily N\+U\+L\+L}. When not needed anymore, the returned value must be freed. 

Referenced by ecore\+\_\+file\+\_\+mv().

\hypertarget{group__Ecore__File__Group_ga3b844d86804b9566aac515becda9dbf2}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+can\+\_\+read@{ecore\+\_\+file\+\_\+can\+\_\+read}}
\index{ecore\+\_\+file\+\_\+can\+\_\+read@{ecore\+\_\+file\+\_\+can\+\_\+read}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+can\+\_\+read}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} ecore\+\_\+file\+\_\+can\+\_\+read (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{file}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga3b844d86804b9566aac515becda9dbf2}


Check if the given file can be read. 


\begin{DoxyParams}{Parameters}
{\em file} & The name of the file. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if the {\ttfamily file} is readable, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if {\ttfamily file} can be read, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. 

References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.

\hypertarget{group__Ecore__File__Group_gaa32b8720b401b8677cec4b12da261a6d}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+can\+\_\+write@{ecore\+\_\+file\+\_\+can\+\_\+write}}
\index{ecore\+\_\+file\+\_\+can\+\_\+write@{ecore\+\_\+file\+\_\+can\+\_\+write}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+can\+\_\+write}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} ecore\+\_\+file\+\_\+can\+\_\+write (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{file}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_gaa32b8720b401b8677cec4b12da261a6d}


Check if the given file can be written. 


\begin{DoxyParams}{Parameters}
{\em file} & The name of the file. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if the {\ttfamily file} is writable, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if {\ttfamily file} can be written, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. 

References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.



Referenced by efreet\+\_\+trash\+\_\+delete\+\_\+uri().

\hypertarget{group__Ecore__File__Group_ga92b7bb460e4d4e92a12c0c144fb69feb}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+can\+\_\+exec@{ecore\+\_\+file\+\_\+can\+\_\+exec}}
\index{ecore\+\_\+file\+\_\+can\+\_\+exec@{ecore\+\_\+file\+\_\+can\+\_\+exec}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+can\+\_\+exec}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} ecore\+\_\+file\+\_\+can\+\_\+exec (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{file}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga92b7bb460e4d4e92a12c0c144fb69feb}


Check if the given file can be executed. 


\begin{DoxyParams}{Parameters}
{\em file} & The name of the file. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if the {\ttfamily file} can be executed, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if {\ttfamily file} can be executed, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. 

References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.



Referenced by ecore\+\_\+file\+\_\+app\+\_\+installed(), and ecore\+\_\+file\+\_\+app\+\_\+list().

\hypertarget{group__Ecore__File__Group_ga289b55071970aceb0f2fc70cb0f8647d}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+readlink@{ecore\+\_\+file\+\_\+readlink}}
\index{ecore\+\_\+file\+\_\+readlink@{ecore\+\_\+file\+\_\+readlink}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+readlink}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} char $\ast$ ecore\+\_\+file\+\_\+readlink (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{lnk}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga289b55071970aceb0f2fc70cb0f8647d}


Get the path pointed by the given link. 


\begin{DoxyParams}{Parameters}
{\em lnk} & The name of the link. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The path pointed by link or N\+U\+L\+L.
\end{DoxyReturn}
This function returns the path pointed by {\ttfamily link} as a newly allocated string. This function does not work on Windows. On failure, the function returns {\ttfamily N\+U\+L\+L}. When not needed anymore, the returned value must be freed. 

References readlink().

\hypertarget{group__Ecore__File__Group_gab7baa24c2abea205b4d1f92397f1bda0}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+ls@{ecore\+\_\+file\+\_\+ls}}
\index{ecore\+\_\+file\+\_\+ls@{ecore\+\_\+file\+\_\+ls}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+ls}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+List} $\ast$ ecore\+\_\+file\+\_\+ls (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{dir}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_gab7baa24c2abea205b4d1f92397f1bda0}


Get the list of the files and directories in the given directory. 


\begin{DoxyParams}{Parameters}
{\em dir} & The name of the directory to list \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Return an Eina\+\_\+\+List containing all the files in the directory; on failure it returns N\+U\+L\+L.
\end{DoxyReturn}
This function returns a list of allocated strings of all the files and directories contained in {\ttfamily 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 L\+C\+\_\+\+C\+O\+L\+L\+A\+T\+E 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, {\ttfamily N\+U\+L\+L} is returned. When not needed anymore, the list elements must be freed. 

References E\+I\+N\+A\+\_\+\+C\+O\+M\+P\+A\+R\+E\+\_\+\+C\+B, eina\+\_\+file\+\_\+direct\+\_\+ls(), E\+I\+N\+A\+\_\+\+I\+T\+E\+R\+A\+T\+O\+R\+\_\+\+F\+O\+R\+E\+A\+C\+H, eina\+\_\+iterator\+\_\+free(), eina\+\_\+list\+\_\+append(), eina\+\_\+list\+\_\+count(), eina\+\_\+list\+\_\+sort(), \+\_\+\+Eina\+\_\+\+File\+\_\+\+Direct\+\_\+\+Info\+::name\+\_\+start, and \+\_\+\+Eina\+\_\+\+File\+\_\+\+Direct\+\_\+\+Info\+::path.



Referenced by ecore\+\_\+file\+\_\+app\+\_\+list(), and efreet\+\_\+trash\+\_\+ls().

\hypertarget{group__Ecore__File__Group_gab01d35474ff7390e41e19609712f6923}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+app\+\_\+exe\+\_\+get@{ecore\+\_\+file\+\_\+app\+\_\+exe\+\_\+get}}
\index{ecore\+\_\+file\+\_\+app\+\_\+exe\+\_\+get@{ecore\+\_\+file\+\_\+app\+\_\+exe\+\_\+get}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+app\+\_\+exe\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} char $\ast$ ecore\+\_\+file\+\_\+app\+\_\+exe\+\_\+get (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{app}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_gab01d35474ff7390e41e19609712f6923}


Return the executable from the given command. 


\begin{DoxyParams}{Parameters}
{\em app} & The application command, with parameters. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The executable from {\ttfamily app} as a newly allocated string. Arguments are removed and escape characters are handled. If {\ttfamily app} is {\ttfamily N\+U\+L\+L}, or on failure, the function returns {\ttfamily N\+U\+L\+L}. When not needed anymore, the returned value must be freed. 
\end{DoxyReturn}


Referenced by efreet\+\_\+util\+\_\+desktop\+\_\+exec\+\_\+find(), and efreet\+\_\+util\+\_\+desktop\+\_\+exec\+\_\+glob\+\_\+list().

\hypertarget{group__Ecore__File__Group_ga0d33ee025d316f91c179bd6cd5f9a9d7}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+escape\+\_\+name@{ecore\+\_\+file\+\_\+escape\+\_\+name}}
\index{ecore\+\_\+file\+\_\+escape\+\_\+name@{ecore\+\_\+file\+\_\+escape\+\_\+name}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+escape\+\_\+name}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} char $\ast$ ecore\+\_\+file\+\_\+escape\+\_\+name (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{filename}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga0d33ee025d316f91c179bd6cd5f9a9d7}


Add the escape sequence ('\textbackslash{}') to the given file name. 


\begin{DoxyParams}{Parameters}
{\em filename} & The file name. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The file name with special characters escaped.
\end{DoxyReturn}
This function adds the escape sequence ('\textbackslash{}') to the given file name and returns the result as a newly allocated string. If the length of the returned string is longer than P\+A\+T\+H\+\_\+\+M\+A\+X, or on failure, {\ttfamily N\+U\+L\+L} is returned. When not needed anymore, the returned value must be freed. \hypertarget{group__Ecore__File__Group_ga04e08638c8ba981a6419e64c19b4688b}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+strip\+\_\+ext@{ecore\+\_\+file\+\_\+strip\+\_\+ext}}
\index{ecore\+\_\+file\+\_\+strip\+\_\+ext@{ecore\+\_\+file\+\_\+strip\+\_\+ext}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+strip\+\_\+ext}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} char $\ast$ ecore\+\_\+file\+\_\+strip\+\_\+ext (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{path}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga04e08638c8ba981a6419e64c19b4688b}


Remove the extension from the given file name. 


\begin{DoxyParams}{Parameters}
{\em path} & The name of the file. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A newly allocated string with the extension stripped out or {\ttfamily N\+U\+L\+L} on errors.
\end{DoxyReturn}
This function removes the extension from {\ttfamily path} and returns the result as a newly allocated string. If {\ttfamily path} is {\ttfamily N\+U\+L\+L}, or on failure, the function returns {\ttfamily N\+U\+L\+L}. When not needed anymore, the returned value must be freed. \hypertarget{group__Ecore__File__Group_ga5f6777eb4beea434372df0aa7357979b}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+dir\+\_\+is\+\_\+empty@{ecore\+\_\+file\+\_\+dir\+\_\+is\+\_\+empty}}
\index{ecore\+\_\+file\+\_\+dir\+\_\+is\+\_\+empty@{ecore\+\_\+file\+\_\+dir\+\_\+is\+\_\+empty}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+dir\+\_\+is\+\_\+empty}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} int ecore\+\_\+file\+\_\+dir\+\_\+is\+\_\+empty (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{dir}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga5f6777eb4beea434372df0aa7357979b}


Check if the given directory is empty. 


\begin{DoxyParams}{Parameters}
{\em dir} & The name of the directory to check. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily 1} if directory is empty, {\ttfamily 0} if it has at least one file or {\ttfamily -\/1} in case of errors.
\end{DoxyReturn}
This functions checks if {\ttfamily dir} is empty. The '.' and '..' files will be ignored. If {\ttfamily dir} is empty, 1 is returned, if it contains at least one file, {\ttfamily 0} is returned. On failure, {\ttfamily -\/1} is returned. 

References eina\+\_\+file\+\_\+direct\+\_\+ls(), E\+I\+N\+A\+\_\+\+I\+T\+E\+R\+A\+T\+O\+R\+\_\+\+F\+O\+R\+E\+A\+C\+H, and eina\+\_\+iterator\+\_\+free().



Referenced by efreet\+\_\+trash\+\_\+is\+\_\+empty().

\hypertarget{group__Ecore__File__Group_ga7d71d00f7b8a1a81a2938989f7da01c7}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+monitor\+\_\+add@{ecore\+\_\+file\+\_\+monitor\+\_\+add}}
\index{ecore\+\_\+file\+\_\+monitor\+\_\+add@{ecore\+\_\+file\+\_\+monitor\+\_\+add}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+monitor\+\_\+add}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Ecore\+\_\+\+File\+\_\+\+Monitor} $\ast$ ecore\+\_\+file\+\_\+monitor\+\_\+add (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{path, }
\item[{{\bf Ecore\+\_\+\+File\+\_\+\+Monitor\+\_\+\+Cb}}]{func, }
\item[{void $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga7d71d00f7b8a1a81a2938989f7da01c7}


Monitor the given path using inotify, Windows notification, or polling. 


\begin{DoxyParams}{Parameters}
{\em path} & The path to monitor. \\
\hline
{\em func} & The function to call on changes. \\
\hline
{\em data} & The data passed to func. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
An Ecore\+\_\+\+File\+\_\+\+Monitor pointer or N\+U\+L\+L on failure.
\end{DoxyReturn}
This function monitors {\ttfamily path}. If {\ttfamily path} is {\ttfamily N\+U\+L\+L}, or is an empty string, or none of the notify methods (Inotify, Windows notification or polling) is available, or if {\ttfamily path} does not exist the function returns {\ttfamily N\+U\+L\+L}. Otherwise, it returns a newly allocated Ecore\+\_\+\+File\+\_\+\+Monitor object and the monitoring begins. When one of the Ecore\+\_\+\+File\+\_\+\+Event event is notified, {\ttfamily func} is called and {\ttfamily data} is passed to {\ttfamily func.\+Call} \hyperlink{group__Ecore__File__Group_ga36214769a9ef953f4d2ddcef0259a651}{ecore\+\_\+file\+\_\+monitor\+\_\+del()} to stop the monitoring. 

Referenced by eeze\+\_\+mount\+\_\+tabs\+\_\+watch().

\hypertarget{group__Ecore__File__Group_ga36214769a9ef953f4d2ddcef0259a651}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+monitor\+\_\+del@{ecore\+\_\+file\+\_\+monitor\+\_\+del}}
\index{ecore\+\_\+file\+\_\+monitor\+\_\+del@{ecore\+\_\+file\+\_\+monitor\+\_\+del}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+monitor\+\_\+del}]{\setlength{\rightskip}{0pt plus 5cm}void ecore\+\_\+file\+\_\+monitor\+\_\+del (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+File\+\_\+\+Monitor} $\ast$}]{em}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga36214769a9ef953f4d2ddcef0259a651}


Stop the monitoring of the given path. 


\begin{DoxyParams}{Parameters}
{\em em} & The Ecore\+\_\+\+File\+\_\+\+Monitor to stop.\\
\hline
\end{DoxyParams}
This function stops the the monitoring of the path that has been monitored by \hyperlink{group__Ecore__File__Group_ga7d71d00f7b8a1a81a2938989f7da01c7}{ecore\+\_\+file\+\_\+monitor\+\_\+add()}. {\ttfamily em} must be the value returned by \hyperlink{group__Ecore__File__Group_ga7d71d00f7b8a1a81a2938989f7da01c7}{ecore\+\_\+file\+\_\+monitor\+\_\+add()}. If {\ttfamily em} is {\ttfamily N\+U\+L\+L}, 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().

\hypertarget{group__Ecore__File__Group_ga2776918fe65501483d67f61c7ab63340}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+monitor\+\_\+path\+\_\+get@{ecore\+\_\+file\+\_\+monitor\+\_\+path\+\_\+get}}
\index{ecore\+\_\+file\+\_\+monitor\+\_\+path\+\_\+get@{ecore\+\_\+file\+\_\+monitor\+\_\+path\+\_\+get}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+monitor\+\_\+path\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}const char $\ast$ ecore\+\_\+file\+\_\+monitor\+\_\+path\+\_\+get (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+File\+\_\+\+Monitor} $\ast$}]{em}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga2776918fe65501483d67f61c7ab63340}


Get the monitored path. 


\begin{DoxyParams}{Parameters}
{\em em} & The Ecore\+\_\+\+File\+\_\+\+Monitor to query. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The path that is monitored by {\ttfamily em}.
\end{DoxyReturn}
This function returns the monitored path that has been monitored by \hyperlink{group__Ecore__File__Group_ga7d71d00f7b8a1a81a2938989f7da01c7}{ecore\+\_\+file\+\_\+monitor\+\_\+add()}. {\ttfamily em} must be the value returned by \hyperlink{group__Ecore__File__Group_ga7d71d00f7b8a1a81a2938989f7da01c7}{ecore\+\_\+file\+\_\+monitor\+\_\+add()}. If {\ttfamily em} is {\ttfamily N\+U\+L\+L}, the function returns {\ttfamily N\+U\+L\+L}. \hypertarget{group__Ecore__File__Group_ga0b979b4dc509a159f087136743e8fc74}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+path\+\_\+dir\+\_\+exists@{ecore\+\_\+file\+\_\+path\+\_\+dir\+\_\+exists}}
\index{ecore\+\_\+file\+\_\+path\+\_\+dir\+\_\+exists@{ecore\+\_\+file\+\_\+path\+\_\+dir\+\_\+exists}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+path\+\_\+dir\+\_\+exists}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} ecore\+\_\+file\+\_\+path\+\_\+dir\+\_\+exists (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{in\+\_\+dir}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga0b979b4dc509a159f087136743e8fc74}


Check if the given directory is in P\+A\+T\+H. 


\begin{DoxyParams}{Parameters}
{\em in\+\_\+dir} & The name of the directory to search in P\+A\+T\+H. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if the directory exist in P\+A\+T\+H, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function checks if {\ttfamily in\+\_\+dir} is in the environment variable P\+A\+T\+H. If {\ttfamily in\+\_\+dir} is {\ttfamily N\+U\+L\+L}, or if P\+A\+T\+H is empty, or {\ttfamily in\+\_\+dir} is not in P\+A\+T\+H, the function returns {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E}, otherwise it returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E}. 

References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+O\+R\+E\+A\+C\+H, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.

\hypertarget{group__Ecore__File__Group_ga0826230d24ff7834c9c10f1cbc82c2ed}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+app\+\_\+installed@{ecore\+\_\+file\+\_\+app\+\_\+installed}}
\index{ecore\+\_\+file\+\_\+app\+\_\+installed@{ecore\+\_\+file\+\_\+app\+\_\+installed}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+app\+\_\+installed}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} ecore\+\_\+file\+\_\+app\+\_\+installed (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{exe}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga0826230d24ff7834c9c10f1cbc82c2ed}


Check if the given application is installed. 


\begin{DoxyParams}{Parameters}
{\em exe} & The name of the application \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if the {\ttfamily exe} is in P\+A\+T\+H and is executable, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function checks if {\ttfamily exe} exists in P\+A\+T\+H and is executable. If {\ttfamily exe} is {\ttfamily N\+U\+L\+L} or is not executable, the function returns {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E}, otherwise it returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E}. 

References ecore\+\_\+file\+\_\+can\+\_\+exec(), E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+O\+R\+E\+A\+C\+H, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.

\hypertarget{group__Ecore__File__Group_gaafdd314a82446206de611bfafb1d2776}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+app\+\_\+list@{ecore\+\_\+file\+\_\+app\+\_\+list}}
\index{ecore\+\_\+file\+\_\+app\+\_\+list@{ecore\+\_\+file\+\_\+app\+\_\+list}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+app\+\_\+list}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+List} $\ast$ ecore\+\_\+file\+\_\+app\+\_\+list (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_gaafdd314a82446206de611bfafb1d2776}


Get a list of all the applications installed on the system. 

\begin{DoxyReturn}{Returns}
An Eina\+\_\+\+List containing all the executable files in the system.
\end{DoxyReturn}
This function returns a list of allocated strings of all the executable files. If no files are found, the function returns {\ttfamily N\+U\+L\+L}. When not needed anymore, the element of the list must be freed. 

References ecore\+\_\+file\+\_\+can\+\_\+exec(), ecore\+\_\+file\+\_\+is\+\_\+dir(), ecore\+\_\+file\+\_\+ls(), eina\+\_\+list\+\_\+append(), E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+O\+R\+E\+A\+C\+H, and E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+R\+E\+E.

\hypertarget{group__Ecore__File__Group_ga3ec2d36d0e56daf214199fd2e2307caa}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+download@{ecore\+\_\+file\+\_\+download}}
\index{ecore\+\_\+file\+\_\+download@{ecore\+\_\+file\+\_\+download}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+download}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} ecore\+\_\+file\+\_\+download (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{url, }
\item[{const char $\ast$}]{dst, }
\item[{{\bf Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Completion\+\_\+\+Cb}}]{completion\+\_\+cb, }
\item[{{\bf Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Progress\+\_\+\+Cb}}]{progress\+\_\+cb, }
\item[{void $\ast$}]{data, }
\item[{{\bf Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Job} $\ast$$\ast$}]{job\+\_\+ret}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga3ec2d36d0e56daf214199fd2e2307caa}


Download the given url to the given destination. 


\begin{DoxyParams}{Parameters}
{\em url} & The complete url to download. \\
\hline
{\em dst} & The local file to save the downloaded to. \\
\hline
{\em completion\+\_\+cb} & A callback called on download complete. \\
\hline
{\em progress\+\_\+cb} & A callback called during the download operation. \\
\hline
{\em data} & User data passed to both callbacks. \\
\hline
{\em job\+\_\+ret} & Job used to abort the download. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if the download start or {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} on failure.
\end{DoxyReturn}
This function starts the download of the U\+R\+L {\ttfamily url} and saves it to {\ttfamily dst}. {\ttfamily url} must provide the protocol, including '\href{http://',}{\tt http\+://',} '\href{ftp://'}{\tt ftp\+://'} or '\href{file://'}{\tt file\+://'}. Ecore\+\_\+\+File must be compiled with C\+U\+R\+L to download using http and ftp protocols. If {\ttfamily dst} is ill-\/formed, or if it already exists, the function returns {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E}. When the download is complete, the callback {\ttfamily completion\+\_\+cb} is called and {\ttfamily data} is passed to it. The {\ttfamily status} parameter of {\ttfamily completion\+\_\+cb} will be filled with the status of the download (200, 404,...). The {\ttfamily progress\+\_\+cb} is called during the download operation, each time a packet is received or when C\+U\+R\+L 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 {\ttfamily job\+\_\+ret} can be filled. It can be used with \hyperlink{group__Ecore__File__Group_gaab33a141bc148f306f4023df3f106ab9}{ecore\+\_\+file\+\_\+download\+\_\+abort()} or \hyperlink{group__Ecore__File__Group_ga70a16572e7a68d86fc73b2832ee61f40}{ecore\+\_\+file\+\_\+download\+\_\+abort\+\_\+all()} to respectively abort one or all download operations. This function returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if the download starts, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. \hypertarget{group__Ecore__File__Group_ga79099348cfad7e1da8158470f058db15}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+download\+\_\+full@{ecore\+\_\+file\+\_\+download\+\_\+full}}
\index{ecore\+\_\+file\+\_\+download\+\_\+full@{ecore\+\_\+file\+\_\+download\+\_\+full}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+download\+\_\+full}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} ecore\+\_\+file\+\_\+download\+\_\+full (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{url, }
\item[{const char $\ast$}]{dst, }
\item[{{\bf Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Completion\+\_\+\+Cb}}]{completion\+\_\+cb, }
\item[{{\bf Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Progress\+\_\+\+Cb}}]{progress\+\_\+cb, }
\item[{void $\ast$}]{data, }
\item[{{\bf Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Job} $\ast$$\ast$}]{job\+\_\+ret, }
\item[{{\bf Eina\+\_\+\+Hash} $\ast$}]{headers}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga79099348cfad7e1da8158470f058db15}


Download the given url to the given destination with additional headers. 


\begin{DoxyParams}{Parameters}
{\em url} & The complete url to download. \\
\hline
{\em dst} & The local file to save the downloaded to. \\
\hline
{\em completion\+\_\+cb} & A callback called on download complete. \\
\hline
{\em progress\+\_\+cb} & A callback called during the download operation. \\
\hline
{\em data} & User data passed to both callbacks. \\
\hline
{\em job\+\_\+ret} & Job used to abort the download. \\
\hline
{\em headers} & pointer of header lists. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if the download start or {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} on failure. 
\end{DoxyReturn}
\hypertarget{group__Ecore__File__Group_ga70a16572e7a68d86fc73b2832ee61f40}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+download\+\_\+abort\+\_\+all@{ecore\+\_\+file\+\_\+download\+\_\+abort\+\_\+all}}
\index{ecore\+\_\+file\+\_\+download\+\_\+abort\+\_\+all@{ecore\+\_\+file\+\_\+download\+\_\+abort\+\_\+all}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+download\+\_\+abort\+\_\+all}]{\setlength{\rightskip}{0pt plus 5cm}void ecore\+\_\+file\+\_\+download\+\_\+abort\+\_\+all (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_ga70a16572e7a68d86fc73b2832ee61f40}


Abort all downloads. 

This function aborts all the downloads that have been started by \hyperlink{group__Ecore__File__Group_ga3ec2d36d0e56daf214199fd2e2307caa}{ecore\+\_\+file\+\_\+download()}. It loops over the started downloads and call \hyperlink{group__Ecore__File__Group_gaab33a141bc148f306f4023df3f106ab9}{ecore\+\_\+file\+\_\+download\+\_\+abort()} for each of them. To abort only one specific download operation, call \hyperlink{group__Ecore__File__Group_gaab33a141bc148f306f4023df3f106ab9}{ecore\+\_\+file\+\_\+download\+\_\+abort()}. 

References ecore\+\_\+file\+\_\+download\+\_\+abort(), and E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+R\+E\+E.

\hypertarget{group__Ecore__File__Group_gaab33a141bc148f306f4023df3f106ab9}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+download\+\_\+abort@{ecore\+\_\+file\+\_\+download\+\_\+abort}}
\index{ecore\+\_\+file\+\_\+download\+\_\+abort@{ecore\+\_\+file\+\_\+download\+\_\+abort}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+download\+\_\+abort}]{\setlength{\rightskip}{0pt plus 5cm}void ecore\+\_\+file\+\_\+download\+\_\+abort (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Job} $\ast$}]{job}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_gaab33a141bc148f306f4023df3f106ab9}


Abort the given download job and call the completion\+\_\+cb callbck with a status of 1 (error). 


\begin{DoxyParams}{Parameters}
{\em job} & The download job to abort.\\
\hline
\end{DoxyParams}
This function aborts a download operation started by \hyperlink{group__Ecore__File__Group_ga3ec2d36d0e56daf214199fd2e2307caa}{ecore\+\_\+file\+\_\+download()}. {\ttfamily job} is the \hyperlink{group__Ecore__File__Group_gac13ffcf33aa05a26d8cd36b22918a8b9}{Ecore\+\_\+\+File\+\_\+\+Download\+\_\+\+Job} structure filled by \hyperlink{group__Ecore__File__Group_ga3ec2d36d0e56daf214199fd2e2307caa}{ecore\+\_\+file\+\_\+download()}. If it is {\ttfamily N\+U\+L\+L}, this function does nothing. To abort all the currently downloading operations, call \hyperlink{group__Ecore__File__Group_ga70a16572e7a68d86fc73b2832ee61f40}{ecore\+\_\+file\+\_\+download\+\_\+abort\+\_\+all()}. 

References ecore\+\_\+con\+\_\+url\+\_\+data\+\_\+get(), ecore\+\_\+con\+\_\+url\+\_\+free(), and eina\+\_\+list\+\_\+remove().



Referenced by ecore\+\_\+file\+\_\+download\+\_\+abort\+\_\+all().

\hypertarget{group__Ecore__File__Group_gab1aa4e6a7be639e47be2c0a10be7124e}{\index{Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}!ecore\+\_\+file\+\_\+download\+\_\+protocol\+\_\+available@{ecore\+\_\+file\+\_\+download\+\_\+protocol\+\_\+available}}
\index{ecore\+\_\+file\+\_\+download\+\_\+protocol\+\_\+available@{ecore\+\_\+file\+\_\+download\+\_\+protocol\+\_\+available}!Ecore\+\_\+\+File -\/ Files and directories convenience functions@{Ecore\+\_\+\+File -\/ Files and directories convenience functions}}
\subsubsection[{ecore\+\_\+file\+\_\+download\+\_\+protocol\+\_\+available}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} ecore\+\_\+file\+\_\+download\+\_\+protocol\+\_\+available (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{protocol}
\end{DoxyParamCaption}
)}}\label{group__Ecore__File__Group_gab1aa4e6a7be639e47be2c0a10be7124e}


Check if the given protocol is available. 


\begin{DoxyParams}{Parameters}
{\em protocol} & The protocol to check. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if protocol is handled, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if {\ttfamily protocol} is supported, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. {\ttfamily protocol} can be '\href{http://',}{\tt http\+://',} '\href{ftp://'}{\tt ftp\+://'} or '\href{file://'}{\tt file\+://'}. Ecore\+\_\+\+F\+I\+L\+E must be compiled with C\+U\+R\+L to handle http and ftp protocols. 

References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.

