/usr/share/doc/libeio-doc/html/tutorial_dir_copy.html is in libeio-doc 1.7.7-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | <html>
<head>
<title>eio_dir_copy() tutorial</title>
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
<meta name="author" content="Andres Blanc" >
<link rel="icon" href="img/favicon.png" type="image/x-icon">
<link rel="shortcut icon" href="img/favicon.png" type="image/x-icon">
<link rel="icon" href="img/favicon.png" type="image/ico">
<link rel="shortcut icon" href="img/favicon.png" type="image/ico">
<link rel="stylesheet" type="text/css" media="screen" href="e.css">
<link rel="stylesheet" type="text/css" media="screen" href="edoxy.css">
</head>
<body>
<div id="container">
<div id="header">
<div class="layout">
<h1><span>Enlightenment</span></h1>
<h2><span>Beauty at your fingertips</span></h2>
<div class="menu-container">
<div class="menu">
<ul>
<li class="current"><a href="http://web.enlightenment.org/p.php?p=docs">Docs</a></li>
<li><a href="http://trac.enlightenment.org/e">Tracker</a></li>
<li><a href="http://www.enlightenment.org/p.php?p=contact">Contact</a></li>
<li><a href="http://www.enlightenment.org/p.php?p=contribute">Contribute</a></li>
<li><a href="http://www.enlightenment.org/p.php?p=support">Support</a></li>
<li><a href="http://www.enlightenment.org/p.php?p=download">Download</a></li>
<li><a href="http://www.enlightenment.org/p.php?p=about">About</a></li>
<li><a href="http://www.enlightenment.org/p.php?p=news">News</a></li>
<li><a href="http://www.enlightenment.org/">Home</a></li>
</ul>
</div>
</div>
<div class="doxytitle">
Eio Documentation <small>at Sat Jan 18 2014</small>
</div>
<div class="menu-container">
<div class="submenu">
<ul class="current">
<li><a href="pages.html">Tutorials</a></li>
<li><a href="group__Eio__Helper.html">Helper API</a></li>
<li><a href="group__Eio__Monitor.html">monitoring API</a></li>
<li><a href="group__Eio__Xattr.html">eXtended attribute API</a></li>
<li><a href="group__Eio__Eet.html">EET API</a></li>
<li><a href="group__Eio__Map.html">reading file API</a></li>
<li><a href="group__Eio__Group.html">Reference API</a></li>
<li class="current"><a href="index.html">Main Page</a></li>
</ul>
</div>
</div>
<div class="clear"></div>
</div>
</div>
<div id="content">
<div class="layout">
<!-- Generated by Doxygen 1.8.6 -->
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title"><a class="el" href="group__Eio__Group.html#gabf3d0f3208e36b93750526be652e19c3" title="Copy a directory and it's content asynchronously. ">eio_dir_copy()</a> tutorial </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>To use <a class="el" href="group__Eio__Group.html#gabf3d0f3208e36b93750526be652e19c3" title="Copy a directory and it's content asynchronously. ">eio_dir_copy()</a>, you basically need the source and destination files (or directories), and set three callbacks:</p>
<ul>
<li>The notification callback, which allows you to know if a file or a directory is copied, and the progress of the copy. </li>
<li>The end callback, which is called when the copy is finished. </li>
<li>The error callback, which is called if an error occured. You can then retrieve the error type as an errno error.</li>
</ul>
<dl class="section warning"><dt>Warning</dt><dd>It is the user's duty to provide the "right target". It means that copying to '.' will copy the content directly inside '.' and not in a subdirectory.</dd></dl>
<p>Here is a simple example:</p>
<div class="fragment"><div class="line"><span class="preprocessor">#include <Ecore.h></span></div>
<div class="line"><span class="preprocessor">#include <Eio.h></span></div>
<div class="line"></div>
<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span></div>
<div class="line">_test_notify_cb(<span class="keywordtype">void</span> *data, <a class="code" href="group__Eio__Group.html#ga1145f009745ecb4d9f6a01a9bc5a9ac0">Eio_File</a> *handler, <span class="keyword">const</span> <a class="code" href="struct__Eio__Progress.html">Eio_Progress</a> *info)</div>
<div class="line">{</div>
<div class="line"> <span class="keywordflow">switch</span> (info-><a class="code" href="struct__Eio__Progress.html#ad22889d94364501b49e38f8ab76b681d">op</a>)</div>
<div class="line"> {</div>
<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group__Eio__Group.html#ggaf9cb2b88e673b8a3e6cb533fd1d90e4dab21f36fa998884ac4d36d9c114a88012">EIO_FILE_COPY</a>:</div>
<div class="line"> printf(<span class="stringliteral">"[%s] %f%%\n"</span>, info-><a class="code" href="struct__Eio__Progress.html#a533f908b383c954f1a7e2b8545e36602">dest</a>, info-><a class="code" href="struct__Eio__Progress.html#a177cdb18d72bd8babab22b96b58ea6e2">percent</a>);</div>
<div class="line"> <span class="keywordflow">break</span>;</div>
<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group__Eio__Group.html#ggaf9cb2b88e673b8a3e6cb533fd1d90e4dad86557496ac7b04ab5b4fb648b7b2bcd">EIO_DIR_COPY</a>:</div>
<div class="line"> printf(<span class="stringliteral">"global [%li/%li] %f%%\n"</span>, info-><a class="code" href="struct__Eio__Progress.html#a1b57c27fa219d799e27ce2f2b0480832">current</a>, info-><a class="code" href="struct__Eio__Progress.html#a575992c43ccfdc0a189054095b2bfae5">max</a>, info-><a class="code" href="struct__Eio__Progress.html#a177cdb18d72bd8babab22b96b58ea6e2">percent</a>);</div>
<div class="line"> <span class="keywordflow">break</span>;</div>
<div class="line"> }</div>
<div class="line">}</div>
<div class="line"></div>
<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span></div>
<div class="line">_test_done_cb(<span class="keywordtype">void</span> *data, <a class="code" href="group__Eio__Group.html#ga1145f009745ecb4d9f6a01a9bc5a9ac0">Eio_File</a> *handler)</div>
<div class="line">{</div>
<div class="line"> printf(<span class="stringliteral">"copy done\n"</span>);</div>
<div class="line"> ecore_main_loop_quit();</div>
<div class="line">}</div>
<div class="line"></div>
<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span></div>
<div class="line">_test_error_cb(<span class="keywordtype">int</span> error, <a class="code" href="group__Eio__Group.html#ga1145f009745ecb4d9f6a01a9bc5a9ac0">Eio_File</a> *handler, <span class="keywordtype">void</span> *data)</div>
<div class="line">{</div>
<div class="line"> fprintf(stderr, <span class="stringliteral">"error: [%s]\n"</span>, strerror(error));</div>
<div class="line"> ecore_main_loop_quit();</div>
<div class="line">}</div>
<div class="line"></div>
<div class="line"><span class="keywordtype">int</span></div>
<div class="line">main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div>
<div class="line">{</div>
<div class="line"> <a class="code" href="group__Eio__Group.html#ga1145f009745ecb4d9f6a01a9bc5a9ac0">Eio_File</a> *cp;</div>
<div class="line"></div>
<div class="line"> <span class="keywordflow">if</span> (argc != 3)</div>
<div class="line"> {</div>
<div class="line"> fprintf(stderr, <span class="stringliteral">"eio_cp source_file destination_file\n"</span>);</div>
<div class="line"> <span class="keywordflow">return</span> -1;</div>
<div class="line"> }</div>
<div class="line"></div>
<div class="line"> ecore_init();</div>
<div class="line"> <a class="code" href="group__Eio__Helper.html#gac612fe5df9b9c93c275ee373745c2471">eio_init</a>();</div>
<div class="line"></div>
<div class="line"> cp = <a class="code" href="group__Eio__Group.html#gabf3d0f3208e36b93750526be652e19c3">eio_dir_copy</a>(argv[1], argv[2],</div>
<div class="line"> _test_notify_cb,</div>
<div class="line"> _test_done_cb,</div>
<div class="line"> _test_error_cb,</div>
<div class="line"> NULL);</div>
<div class="line"></div>
<div class="line"> ecore_main_loop_begin();</div>
<div class="line"></div>
<div class="line"> <a class="code" href="group__Eio__Helper.html#ga2281001078f6f99e3662bc889524831b">eio_shutdown</a>();</div>
<div class="line"> ecore_shutdown();</div>
<div class="line"></div>
<div class="line"> <span class="keywordflow">return</span> 0;</div>
<div class="line">}</div>
</div><!-- fragment --> </div></div><!-- contents -->
<div id="push"></div>
</div> <!-- #content -->
</div> <!-- .layout -->
</div> <!-- #container -->
<div id="footer">
<table><tr>
<td class="poweredby"><img src="doxygen.png"></td>
<td class="copyright">Copyright ©2014 Enlightenment</td>
<td class="generated">Docs generated Sat Jan 18 2014 19:26:44</td>
</tr></table>
</div>
</body>
</html>
|