1 <refentry id="gnome-vfs-20-gnome-vfs-file-basic-ops">
3 <refentrytitle>Basic File Operations</refentrytitle>
4 <manvolnum>3</manvolnum>
5 <refmiscinfo>GNOME-VFS-2.0 Library</refmiscinfo>
9 <refname>Basic File Operations</refname><refpurpose></refpurpose>
12 <refsynopsisdiv><title>Synopsis</title>
18 enum <link linkend="GnomeVFSOpenMode">GnomeVFSOpenMode</link>;
19 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-create">gnome_vfs_create</link> (<link linkend="GnomeVFSHandle">GnomeVFSHandle</link> **handle,
20 const <link linkend="gchar">gchar</link> *text_uri,
21 <link linkend="GnomeVFSOpenMode">GnomeVFSOpenMode</link> open_mode,
22 <link linkend="gboolean">gboolean</link> exclusive,
23 <link linkend="guint">guint</link> perm);
24 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-create-uri">gnome_vfs_create_uri</link> (<link linkend="GnomeVFSHandle">GnomeVFSHandle</link> **handle,
25 <link linkend="GnomeVFSURI">GnomeVFSURI</link> *uri,
26 <link linkend="GnomeVFSOpenMode">GnomeVFSOpenMode</link> open_mode,
27 <link linkend="gboolean">gboolean</link> exclusive,
28 <link linkend="guint">guint</link> perm);
29 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-open">gnome_vfs_open</link> (<link linkend="GnomeVFSHandle">GnomeVFSHandle</link> **handle,
30 const <link linkend="gchar">gchar</link> *text_uri,
31 <link linkend="GnomeVFSOpenMode">GnomeVFSOpenMode</link> open_mode);
32 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-open-uri">gnome_vfs_open_uri</link> (<link linkend="GnomeVFSHandle">GnomeVFSHandle</link> **handle,
33 <link linkend="GnomeVFSURI">GnomeVFSURI</link> *uri,
34 <link linkend="GnomeVFSOpenMode">GnomeVFSOpenMode</link> open_mode);
35 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-close">gnome_vfs_close</link> (<link linkend="GnomeVFSHandle">GnomeVFSHandle</link> *handle);
36 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-unlink">gnome_vfs_unlink</link> (const <link linkend="gchar">gchar</link> *text_uri);
37 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-unlink-from-uri">gnome_vfs_unlink_from_uri</link> (<link linkend="GnomeVFSURI">GnomeVFSURI</link> *uri);
38 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-move-uri">gnome_vfs_move_uri</link> (<link linkend="GnomeVFSURI">GnomeVFSURI</link> *old_uri,
39 <link linkend="GnomeVFSURI">GnomeVFSURI</link> *new_uri,
40 <link linkend="gboolean">gboolean</link> force_replace);
41 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-move">gnome_vfs_move</link> (const <link linkend="gchar">gchar</link> *old_text_uri,
42 const <link linkend="gchar">gchar</link> *new_text_uri,
43 <link linkend="gboolean">gboolean</link> force_replace);
44 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-check-same-fs-uris">gnome_vfs_check_same_fs_uris</link> (<link linkend="GnomeVFSURI">GnomeVFSURI</link> *source_uri,
45 <link linkend="GnomeVFSURI">GnomeVFSURI</link> *target_uri,
46 <link linkend="gboolean">gboolean</link> *same_fs_return);
47 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-check-same-fs">gnome_vfs_check_same_fs</link> (const <link linkend="gchar">gchar</link> *source,
48 const <link linkend="gchar">gchar</link> *target,
49 <link linkend="gboolean">gboolean</link> *same_fs_return);
50 <link linkend="gboolean">gboolean</link> <link linkend="gnome-vfs-uri-exists">gnome_vfs_uri_exists</link> (<link linkend="GnomeVFSURI">GnomeVFSURI</link> *uri);
51 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-create-symbolic-link">gnome_vfs_create_symbolic_link</link>
52 (<link linkend="GnomeVFSURI">GnomeVFSURI</link> *uri,
53 const <link linkend="gchar">gchar</link> *target_reference);
66 <title>Description</title>
73 <title>Details</title>
75 <title><anchor id="GnomeVFSOpenMode"/>enum GnomeVFSOpenMode</title>
76 <indexterm><primary>GnomeVFSOpenMode</primary></indexterm><programlisting>typedef enum {
77 GNOME_VFS_OPEN_NONE = 0,
78 GNOME_VFS_OPEN_READ = 1 << 0,
79 GNOME_VFS_OPEN_WRITE = 1 << 1,
80 GNOME_VFS_OPEN_RANDOM = 1 << 2
84 Mode in which files are opened. If GNOME_VFS_OPEN_RANDOM is not used, the
85 file will be have to be accessed sequentially.</para>
90 <title><anchor id="gnome-vfs-create"/>gnome_vfs_create ()</title>
91 <indexterm><primary>gnome_vfs_create</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_create (<link linkend="GnomeVFSHandle">GnomeVFSHandle</link> **handle,
92 const <link linkend="gchar">gchar</link> *text_uri,
93 <link linkend="GnomeVFSOpenMode">GnomeVFSOpenMode</link> open_mode,
94 <link linkend="gboolean">gboolean</link> exclusive,
95 <link linkend="guint">guint</link> perm);</programlisting>
97 Create <parameter>uri</parameter> according to mode <parameter>open_mode</parameter>. On return, <parameter>handle</parameter> will then
98 contain a pointer to a handle for the open file.</para>
101 </para><variablelist role="params">
102 <varlistentry><term><parameter>handle</parameter> :</term>
103 <listitem><simpara> A pointer to a pointer to a GnomeVFSHandle object
104 </simpara></listitem></varlistentry>
105 <varlistentry><term><parameter>text_uri</parameter> :</term>
106 <listitem><simpara> String representing the URI to create
107 </simpara></listitem></varlistentry>
108 <varlistentry><term><parameter>open_mode</parameter> :</term>
109 <listitem><simpara> mode to leave the file opened in after creation (or <literal>GNOME_VFS_OPEN_MODE_NONE</literal>
110 to leave the file closed after creation)
111 </simpara></listitem></varlistentry>
112 <varlistentry><term><parameter>exclusive</parameter> :</term>
113 <listitem><simpara> Whether the file should be created in "exclusive" mode:
114 i.e. if this flag is nonzero, operation will fail if a file with the
115 same name already exists.
116 </simpara></listitem></varlistentry>
117 <varlistentry><term><parameter>perm</parameter> :</term>
118 <listitem><simpara> Bitmap representing the permissions for the newly created file
120 </simpara></listitem></varlistentry>
121 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An integer representing the result of the operation
122 </simpara></listitem></varlistentry>
123 </variablelist></refsect2>
125 <title><anchor id="gnome-vfs-create-uri"/>gnome_vfs_create_uri ()</title>
126 <indexterm><primary>gnome_vfs_create_uri</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_create_uri (<link linkend="GnomeVFSHandle">GnomeVFSHandle</link> **handle,
127 <link linkend="GnomeVFSURI">GnomeVFSURI</link> *uri,
128 <link linkend="GnomeVFSOpenMode">GnomeVFSOpenMode</link> open_mode,
129 <link linkend="gboolean">gboolean</link> exclusive,
130 <link linkend="guint">guint</link> perm);</programlisting>
132 Create <parameter>uri</parameter> according to mode <parameter>open_mode</parameter>. On return, <parameter>handle</parameter> will then
133 contain a pointer to a handle for the open file.</para>
136 </para><variablelist role="params">
137 <varlistentry><term><parameter>handle</parameter> :</term>
138 <listitem><simpara> A pointer to a pointer to a GnomeVFSHandle object
139 </simpara></listitem></varlistentry>
140 <varlistentry><term><parameter>uri</parameter> :</term>
141 <listitem><simpara> URI for the file to create
142 </simpara></listitem></varlistentry>
143 <varlistentry><term><parameter>open_mode</parameter> :</term>
144 <listitem><simpara> Open mode
145 </simpara></listitem></varlistentry>
146 <varlistentry><term><parameter>exclusive</parameter> :</term>
147 <listitem><simpara> Whether the file should be created in "exclusive" mode:
148 i.e. if this flag is nonzero, operation will fail if a file with the
149 same name already exists.
150 </simpara></listitem></varlistentry>
151 <varlistentry><term><parameter>perm</parameter> :</term>
152 <listitem><simpara> Bitmap representing the permissions for the newly created file
154 </simpara></listitem></varlistentry>
155 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An integer representing the result of the operation
156 </simpara></listitem></varlistentry>
157 </variablelist></refsect2>
159 <title><anchor id="gnome-vfs-open"/>gnome_vfs_open ()</title>
160 <indexterm><primary>gnome_vfs_open</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_open (<link linkend="GnomeVFSHandle">GnomeVFSHandle</link> **handle,
161 const <link linkend="gchar">gchar</link> *text_uri,
162 <link linkend="GnomeVFSOpenMode">GnomeVFSOpenMode</link> open_mode);</programlisting>
164 Open <parameter>text_uri</parameter> according to mode <parameter>open_mode</parameter>. On return, <parameter>handle</parameter> will then
165 contain a pointer to a handle for the open file.</para>
168 </para><variablelist role="params">
169 <varlistentry><term><parameter>handle</parameter> :</term>
170 <listitem><simpara> A pointer to a pointer to a GnomeVFSHandle object
171 </simpara></listitem></varlistentry>
172 <varlistentry><term><parameter>text_uri</parameter> :</term>
173 <listitem><simpara> String representing the URI to open
174 </simpara></listitem></varlistentry>
175 <varlistentry><term><parameter>open_mode</parameter> :</term>
176 <listitem><simpara> Open mode
177 </simpara></listitem></varlistentry>
178 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An integer representing the result of the operation
179 </simpara></listitem></varlistentry>
180 </variablelist></refsect2>
182 <title><anchor id="gnome-vfs-open-uri"/>gnome_vfs_open_uri ()</title>
183 <indexterm><primary>gnome_vfs_open_uri</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_open_uri (<link linkend="GnomeVFSHandle">GnomeVFSHandle</link> **handle,
184 <link linkend="GnomeVFSURI">GnomeVFSURI</link> *uri,
185 <link linkend="GnomeVFSOpenMode">GnomeVFSOpenMode</link> open_mode);</programlisting>
187 Open <parameter>uri</parameter> according to mode <parameter>open_mode</parameter>. On return, <parameter>handle</parameter> will then
188 contain a pointer to a handle for the open file.</para>
191 </para><variablelist role="params">
192 <varlistentry><term><parameter>handle</parameter> :</term>
193 <listitem><simpara> A pointer to a pointer to a GnomeVFSHandle object
194 </simpara></listitem></varlistentry>
195 <varlistentry><term><parameter>uri</parameter> :</term>
196 <listitem><simpara> URI to open
197 </simpara></listitem></varlistentry>
198 <varlistentry><term><parameter>open_mode</parameter> :</term>
199 <listitem><simpara> Open mode
200 </simpara></listitem></varlistentry>
201 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An integer representing the result of the operation
202 </simpara></listitem></varlistentry>
203 </variablelist></refsect2>
205 <title><anchor id="gnome-vfs-close"/>gnome_vfs_close ()</title>
206 <indexterm><primary>gnome_vfs_close</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_close (<link linkend="GnomeVFSHandle">GnomeVFSHandle</link> *handle);</programlisting>
208 Close file associated with <parameter>handle</parameter>.</para>
211 </para><variablelist role="params">
212 <varlistentry><term><parameter>handle</parameter> :</term>
213 <listitem><simpara> A pointer to a GnomeVFSHandle object
214 </simpara></listitem></varlistentry>
215 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An integer representing the result of the operation.
216 </simpara></listitem></varlistentry>
217 </variablelist></refsect2>
219 <title><anchor id="gnome-vfs-unlink"/>gnome_vfs_unlink ()</title>
220 <indexterm><primary>gnome_vfs_unlink</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_unlink (const <link linkend="gchar">gchar</link> *text_uri);</programlisting>
222 Unlink <parameter>text_uri</parameter> (i.e. delete the file).</para>
225 </para><variablelist role="params">
226 <varlistentry><term><parameter>text_uri</parameter> :</term>
227 <listitem><simpara> URI of the file to be unlinked
228 </simpara></listitem></varlistentry>
229 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An integer representing the result of the operation
230 </simpara></listitem></varlistentry>
231 </variablelist></refsect2>
233 <title><anchor id="gnome-vfs-unlink-from-uri"/>gnome_vfs_unlink_from_uri ()</title>
234 <indexterm><primary>gnome_vfs_unlink_from_uri</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_unlink_from_uri (<link linkend="GnomeVFSURI">GnomeVFSURI</link> *uri);</programlisting>
236 Unlink <parameter>uri</parameter> (i.e. delete the file).</para>
239 </para><variablelist role="params">
240 <varlistentry><term><parameter>uri</parameter> :</term>
241 <listitem><simpara> URI of the file to be unlinked
242 </simpara></listitem></varlistentry>
243 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An integer representing the result of the operation
244 </simpara></listitem></varlistentry>
245 </variablelist></refsect2>
247 <title><anchor id="gnome-vfs-move-uri"/>gnome_vfs_move_uri ()</title>
248 <indexterm><primary>gnome_vfs_move_uri</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_move_uri (<link linkend="GnomeVFSURI">GnomeVFSURI</link> *old_uri,
249 <link linkend="GnomeVFSURI">GnomeVFSURI</link> *new_uri,
250 <link linkend="gboolean">gboolean</link> force_replace);</programlisting>
252 Move a file from URI <parameter>old_uri</parameter> to <parameter>new_uri</parameter>. This will only work if <parameter>old_uri</parameter>
253 and <parameter>new_uri</parameter> are on the same file system. Otherwise, it is necessary
254 to use the more general %<link linkend="gnome-vfs-xfer-uri"><function>gnome_vfs_xfer_uri()</function></link> function.</para>
257 </para><variablelist role="params">
258 <varlistentry><term><parameter>old_uri</parameter> :</term>
259 <listitem><simpara> Source URI
260 </simpara></listitem></varlistentry>
261 <varlistentry><term><parameter>new_uri</parameter> :</term>
262 <listitem><simpara> Destination URI
263 </simpara></listitem></varlistentry>
264 <varlistentry><term><parameter>force_replace</parameter> :</term>
265 <listitem><simpara> If <literal>TRUE</literal>, move target to <parameter>new_uri</parameter> even if there
266 is already a file at <parameter>new_uri</parameter>. If there is a file, it will be discarded.
267 </simpara></listitem></varlistentry>
268 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An integer representing the result of the operation.
269 </simpara></listitem></varlistentry>
270 </variablelist></refsect2>
272 <title><anchor id="gnome-vfs-move"/>gnome_vfs_move ()</title>
273 <indexterm><primary>gnome_vfs_move</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_move (const <link linkend="gchar">gchar</link> *old_text_uri,
274 const <link linkend="gchar">gchar</link> *new_text_uri,
275 <link linkend="gboolean">gboolean</link> force_replace);</programlisting>
277 Move a file from URI <parameter>old_text_uri</parameter> to <parameter>new_text_uri</parameter>. This will only work
278 if <parameter>old_text_uri</parameter> and <parameter>new_text_uri</parameter> are on the same file system. Otherwise,
279 it is necessary to use the more general %<link linkend="gnome-vfs-xfer-uri"><function>gnome_vfs_xfer_uri()</function></link> function.</para>
282 </para><variablelist role="params">
283 <varlistentry><term><parameter>old_text_uri</parameter> :</term>
284 <listitem><simpara> Source URI
285 </simpara></listitem></varlistentry>
286 <varlistentry><term><parameter>new_text_uri</parameter> :</term>
287 <listitem><simpara> Destination URI
288 </simpara></listitem></varlistentry>
289 <varlistentry><term><parameter>force_replace</parameter> :</term>
290 <listitem><simpara> if <literal>TRUE</literal>, perform the operation even if it unlinks an existing
291 file at <parameter>new_text_uri</parameter>
292 </simpara></listitem></varlistentry>
293 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An integer representing the result of the operation.
294 </simpara></listitem></varlistentry>
295 </variablelist></refsect2>
297 <title><anchor id="gnome-vfs-check-same-fs-uris"/>gnome_vfs_check_same_fs_uris ()</title>
298 <indexterm><primary>gnome_vfs_check_same_fs_uris</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_check_same_fs_uris (<link linkend="GnomeVFSURI">GnomeVFSURI</link> *source_uri,
299 <link linkend="GnomeVFSURI">GnomeVFSURI</link> *target_uri,
300 <link linkend="gboolean">gboolean</link> *same_fs_return);</programlisting>
302 Check if <parameter>source_uri</parameter> and <parameter>target_uri</parameter> are on the same file system.</para>
305 </para><variablelist role="params">
306 <varlistentry><term><parameter>source_uri</parameter> :</term>
307 <listitem><simpara> A URI
308 </simpara></listitem></varlistentry>
309 <varlistentry><term><parameter>target_uri</parameter> :</term>
310 <listitem><simpara> Another URI
311 </simpara></listitem></varlistentry>
312 <varlistentry><term><parameter>same_fs_return</parameter> :</term>
313 <listitem><simpara> Pointer to a boolean variable which will be set to <literal>TRUE</literal>
314 if <parameter>source_uri</parameter> and <parameter>target_uri</parameter> are on the same file system on return.
315 </simpara></listitem></varlistentry>
316 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An integer representing the result of the operation.
317 </simpara></listitem></varlistentry>
318 </variablelist></refsect2>
320 <title><anchor id="gnome-vfs-check-same-fs"/>gnome_vfs_check_same_fs ()</title>
321 <indexterm><primary>gnome_vfs_check_same_fs</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_check_same_fs (const <link linkend="gchar">gchar</link> *source,
322 const <link linkend="gchar">gchar</link> *target,
323 <link linkend="gboolean">gboolean</link> *same_fs_return);</programlisting>
325 Return <literal>TRUE</literal> if <parameter>source</parameter> and <parameter>target</parameter> are on the same file system.</para>
328 </para><variablelist role="params">
329 <varlistentry><term><parameter>source</parameter> :</term>
330 <listitem><simpara> A URI
331 </simpara></listitem></varlistentry>
332 <varlistentry><term><parameter>target</parameter> :</term>
333 <listitem><simpara> Another URI
334 </simpara></listitem></varlistentry>
335 <varlistentry><term><parameter>same_fs_return</parameter> :</term>
336 <listitem><simpara> Pointer to a boolean variable which will be set to <literal>TRUE</literal>
337 </simpara></listitem></varlistentry>
338 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An integer representing the result of the operation.
339 </simpara></listitem></varlistentry>
340 </variablelist></refsect2>
342 <title><anchor id="gnome-vfs-uri-exists"/>gnome_vfs_uri_exists ()</title>
343 <indexterm><primary>gnome_vfs_uri_exists</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gnome_vfs_uri_exists (<link linkend="GnomeVFSURI">GnomeVFSURI</link> *uri);</programlisting>
345 Check if the URI points to an existing entity.</para>
348 </para><variablelist role="params">
349 <varlistentry><term><parameter>uri</parameter> :</term>
350 <listitem><simpara> A URI
351 </simpara></listitem></varlistentry>
352 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> TRUE if URI exists.
353 </simpara></listitem></varlistentry>
354 </variablelist></refsect2>
356 <title><anchor id="gnome-vfs-create-symbolic-link"/>gnome_vfs_create_symbolic_link ()</title>
357 <indexterm><primary>gnome_vfs_create_symbolic_link</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_create_symbolic_link
358 (<link linkend="GnomeVFSURI">GnomeVFSURI</link> *uri,
359 const <link linkend="gchar">gchar</link> *target_reference);</programlisting>
361 Creates a symbolic link, or eventually, a URI link (as necessary)
362 at <parameter>uri</parameter> pointing to <parameter>target_reference</parameter></para>
365 </para><variablelist role="params">
366 <varlistentry><term><parameter>uri</parameter> :</term>
367 <listitem><simpara> URI to create a link at
368 </simpara></listitem></varlistentry>
369 <varlistentry><term><parameter>target_reference</parameter> :</term>
370 <listitem><simpara> URI "reference" to point the link to (URI or relative path)
371 </simpara></listitem></varlistentry>
372 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An integer representing the result of the operation
373 </simpara></listitem></varlistentry>
374 </variablelist></refsect2>