ftp://ftp.redhat.com/pub/redhat/linux/rawhide/SRPMS/SRPMS/gnome-vfs2-2.3.8-1.src.rpm
[gnome-vfs-httpcaptive.git] / doc / xml / gnome-vfs-file-info.xml
1 <refentry id="gnome-vfs-20-gnome-vfs-file-info">
2 <refmeta>
3 <refentrytitle>GnomeVFSFileInfo</refentrytitle>
4 <manvolnum>3</manvolnum>
5 <refmiscinfo>GNOME-VFS-2.0 Library</refmiscinfo>
6 </refmeta>
7
8 <refnamediv>
9 <refname>GnomeVFSFileInfo</refname><refpurpose>
10 stores information about files, GnomeVFS equivalent of stat</refpurpose>
11 </refnamediv>
12
13 <refsynopsisdiv><title>Synopsis</title>
14
15 <synopsis>
16
17
18
19 enum        <link linkend="GnomeVFSFileFlags">GnomeVFSFileFlags</link>;
20 enum        <link linkend="GnomeVFSFileType">GnomeVFSFileType</link>;
21 enum        <link linkend="GnomeVFSFileInfoFields">GnomeVFSFileInfoFields</link>;
22 enum        <link linkend="GnomeVFSFilePermissions">GnomeVFSFilePermissions</link>;
23 enum        <link linkend="GnomeVFSFileInfoOptions">GnomeVFSFileInfoOptions</link>;
24 enum        <link linkend="GnomeVFSSetFileInfoMask">GnomeVFSSetFileInfoMask</link>;
25 typedef     <link linkend="GnomeVFSGetFileInfoResult">GnomeVFSGetFileInfoResult</link>;
26 typedef     <link linkend="GnomeVFSInodeNumber">GnomeVFSInodeNumber</link>;
27 typedef     <link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link>;
28 #define     <link linkend="GNOME-VFS-FILE-INFO-SYMLINK-CAPS">GNOME_VFS_FILE_INFO_SYMLINK</link>     (info)
29 #define     <link linkend="GNOME-VFS-FILE-INFO-SET-SYMLINK-CAPS">GNOME_VFS_FILE_INFO_SET_SYMLINK</link> (info, value)
30 #define     <link linkend="GNOME-VFS-FILE-INFO-LOCAL-CAPS">GNOME_VFS_FILE_INFO_LOCAL</link>       (info)
31 #define     <link linkend="GNOME-VFS-FILE-INFO-SET-LOCAL-CAPS">GNOME_VFS_FILE_INFO_SET_LOCAL</link>   (info, value)
32 #define     <link linkend="GNOME-VFS-FILE-INFO-SUID-CAPS">GNOME_VFS_FILE_INFO_SUID</link>        (info)
33 #define     <link linkend="GNOME-VFS-FILE-INFO-SGID-CAPS">GNOME_VFS_FILE_INFO_SGID</link>        (info)
34 #define     <link linkend="GNOME-VFS-FILE-INFO-STICKY-CAPS">GNOME_VFS_FILE_INFO_STICKY</link>      (info)
35 #define     <link linkend="GNOME-VFS-FILE-INFO-SET-SUID-CAPS">GNOME_VFS_FILE_INFO_SET_SUID</link>    (info, value)
36 #define     <link linkend="GNOME-VFS-FILE-INFO-SET-SGID-CAPS">GNOME_VFS_FILE_INFO_SET_SGID</link>    (info, value)
37 #define     <link linkend="GNOME-VFS-FILE-INFO-SET-STICKY-CAPS">GNOME_VFS_FILE_INFO_SET_STICKY</link>  (info, value)
38 <link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link>* <link linkend="gnome-vfs-file-info-new">gnome_vfs_file_info_new</link>   (void);
39 <link linkend="void">void</link>        <link linkend="gnome-vfs-file-info-unref">gnome_vfs_file_info_unref</link>       (<link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *info);
40 <link linkend="void">void</link>        <link linkend="gnome-vfs-file-info-ref">gnome_vfs_file_info_ref</link>         (<link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *info);
41 <link linkend="void">void</link>        <link linkend="gnome-vfs-file-info-clear">gnome_vfs_file_info_clear</link>       (<link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *info);
42 const <link linkend="char">char</link>* <link linkend="gnome-vfs-file-info-get-mime-type">gnome_vfs_file_info_get_mime_type</link>
43                                             (<link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *info);
44 <link linkend="void">void</link>        <link linkend="gnome-vfs-file-info-copy">gnome_vfs_file_info_copy</link>        (<link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *dest,
45                                              const <link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *src);
46 <link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link>* <link linkend="gnome-vfs-file-info-dup">gnome_vfs_file_info_dup</link>   (const <link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *orig);
47 <link linkend="gboolean">gboolean</link>    <link linkend="gnome-vfs-file-info-matches">gnome_vfs_file_info_matches</link>     (const <link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *a,
48                                              const <link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *b);
49 <link linkend="GList">GList</link>*      <link linkend="gnome-vfs-file-info-list-ref">gnome_vfs_file_info_list_ref</link>    (<link linkend="GList">GList</link> *list);
50 <link linkend="GList">GList</link>*      <link linkend="gnome-vfs-file-info-list-unref">gnome_vfs_file_info_list_unref</link>  (<link linkend="GList">GList</link> *list);
51 <link linkend="GList">GList</link>*      <link linkend="gnome-vfs-file-info-list-copy">gnome_vfs_file_info_list_copy</link>   (<link linkend="GList">GList</link> *list);
52 <link linkend="void">void</link>        <link linkend="gnome-vfs-file-info-list-free">gnome_vfs_file_info_list_free</link>   (<link linkend="GList">GList</link> *list);
53 </synopsis>
54 </refsynopsisdiv>
55
56
57
58
59
60
61
62
63
64 <refsect1>
65 <title>Description</title>
66 <para>
67
68 </para>
69 </refsect1>
70
71 <refsect1>
72 <title>Details</title>
73 <refsect2>
74 <title><anchor id="GnomeVFSFileFlags"/>enum GnomeVFSFileFlags</title>
75 <indexterm><primary>GnomeVFSFileFlags</primary></indexterm><programlisting>typedef enum {
76         GNOME_VFS_FILE_FLAGS_NONE = 0,
77         GNOME_VFS_FILE_FLAGS_SYMLINK = 1 &lt;&lt; 0,
78         GNOME_VFS_FILE_FLAGS_LOCAL = 1 &lt;&lt; 1
79 } GnomeVFSFileFlags;
80 </programlisting>
81 <para>
82 Packed boolean bitfield representing special
83 flags a <link linkend="GnomeVFSFileInfo"><type>GnomeVFSFileInfo</type></link> struct can have.</para>
84 <para>
85
86 </para><variablelist role="enum">
87 <varlistentry>
88 <term><literal>GNOME_VFS_FILE_FLAGS_NONE</literal></term>
89 <listitem><simpara> no flags
90 </simpara></listitem>
91 </varlistentry>
92 <varlistentry>
93 <term><literal>GNOME_VFS_FILE_FLAGS_SYMLINK</literal></term>
94 <listitem><simpara> whether the file is a symlink.
95 </simpara></listitem>
96 </varlistentry>
97 <varlistentry>
98 <term><literal>GNOME_VFS_FILE_FLAGS_LOCAL</literal></term>
99 <listitem><simpara> whether the file is on a local filesystem
100 </simpara></listitem>
101 </varlistentry>
102 </variablelist></refsect2>
103 <refsect2>
104 <title><anchor id="GnomeVFSFileType"/>enum GnomeVFSFileType</title>
105 <indexterm><primary>GnomeVFSFileType</primary></indexterm><programlisting>typedef enum {
106         GNOME_VFS_FILE_TYPE_UNKNOWN,
107         GNOME_VFS_FILE_TYPE_REGULAR,
108         GNOME_VFS_FILE_TYPE_DIRECTORY,
109         GNOME_VFS_FILE_TYPE_FIFO,
110         GNOME_VFS_FILE_TYPE_SOCKET,
111         GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE,
112         GNOME_VFS_FILE_TYPE_BLOCK_DEVICE,
113         GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK
114 } GnomeVFSFileType;
115 </programlisting>
116 <para>
117 Identifies the kind of file represented by a <link linkend="GnomeVFSFileInfo"><type>GnomeVFSFileInfo</type></link> struct. (note,
118 use of MIME types is preferred as this field may eventually disappear)</para>
119 <para>
120
121 </para></refsect2>
122 <refsect2>
123 <title><anchor id="GnomeVFSFileInfoFields"/>enum GnomeVFSFileInfoFields</title>
124 <indexterm><primary>GnomeVFSFileInfoFields</primary></indexterm><programlisting>typedef enum {
125         GNOME_VFS_FILE_INFO_FIELDS_NONE = 0,
126         GNOME_VFS_FILE_INFO_FIELDS_TYPE = 1 &lt;&lt; 0,
127         GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS = 1 &lt;&lt; 1,
128         GNOME_VFS_FILE_INFO_FIELDS_FLAGS = 1 &lt;&lt; 2,
129         GNOME_VFS_FILE_INFO_FIELDS_DEVICE = 1 &lt;&lt; 3,
130         GNOME_VFS_FILE_INFO_FIELDS_INODE = 1 &lt;&lt; 4,
131         GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT = 1 &lt;&lt; 5,
132         GNOME_VFS_FILE_INFO_FIELDS_SIZE = 1 &lt;&lt; 6,
133         GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT = 1 &lt;&lt; 7,
134         GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE = 1 &lt;&lt; 8,
135         GNOME_VFS_FILE_INFO_FIELDS_ATIME = 1 &lt;&lt; 9,
136         GNOME_VFS_FILE_INFO_FIELDS_MTIME = 1 &lt;&lt; 10,
137         GNOME_VFS_FILE_INFO_FIELDS_CTIME = 1 &lt;&lt; 11,
138         GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME = 1 &lt;&lt; 12,
139         GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE = 1 &lt;&lt; 13,
140         GNOME_VFS_FILE_INFO_FIELDS_ACCESS = 1 &lt;&lt; 14
141 } GnomeVFSFileInfoFields;
142 </programlisting>
143 <para>
144 Flags indicating what fields in a GnomeVFSFileInfo struct are valid. 
145 Name is always assumed valid (how else would you have gotten a
146 FileInfo struct otherwise?)</para>
147 <para>
148
149 </para><variablelist role="enum">
150 <varlistentry>
151 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_NONE</literal></term>
152 <listitem><simpara> No fields are valid
153 </simpara></listitem>
154 </varlistentry>
155 <varlistentry>
156 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_TYPE</literal></term>
157 <listitem><simpara> Type field is valid
158 </simpara></listitem>
159 </varlistentry>
160 <varlistentry>
161 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS</literal></term>
162 <listitem><simpara> Permissions field is valid
163 </simpara></listitem>
164 </varlistentry>
165 <varlistentry>
166 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_FLAGS</literal></term>
167 <listitem><simpara> Flags field is valid
168 </simpara></listitem>
169 </varlistentry>
170 <varlistentry>
171 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_DEVICE</literal></term>
172 <listitem><simpara> Device field is valid
173 </simpara></listitem>
174 </varlistentry>
175 <varlistentry>
176 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_INODE</literal></term>
177 <listitem><simpara> Inode field is valid
178 </simpara></listitem>
179 </varlistentry>
180 <varlistentry>
181 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT</literal></term>
182 <listitem><simpara> Link count field is valid
183 </simpara></listitem>
184 </varlistentry>
185 <varlistentry>
186 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_SIZE</literal></term>
187 <listitem><simpara> Size field is valid
188 </simpara></listitem>
189 </varlistentry>
190 <varlistentry>
191 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT</literal></term>
192 <listitem><simpara> Block count field is valid
193 </simpara></listitem>
194 </varlistentry>
195 <varlistentry>
196 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE</literal></term>
197 <listitem><simpara> I/O Block Size field is valid
198 </simpara></listitem>
199 </varlistentry>
200 <varlistentry>
201 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_ATIME</literal></term>
202 <listitem><simpara> Access time field is valid
203 </simpara></listitem>
204 </varlistentry>
205 <varlistentry>
206 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_MTIME</literal></term>
207 <listitem><simpara> Modification time field is valid
208 </simpara></listitem>
209 </varlistentry>
210 <varlistentry>
211 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_CTIME</literal></term>
212 <listitem><simpara> Creating time field is valid
213 </simpara></listitem>
214 </varlistentry>
215 <varlistentry>
216 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME</literal></term>
217 <listitem><simpara> Symlink name field is valid
218 </simpara></listitem>
219 </varlistentry>
220 <varlistentry>
221 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE</literal></term>
222 <listitem><simpara> Mime type field is valid
223 </simpara></listitem>
224 </varlistentry>
225 <varlistentry>
226 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_ACCESS</literal></term>
227 <listitem><simpara> Access bits of the permissions
228 bitfield are valid
229 </simpara></listitem>
230 </varlistentry>
231 </variablelist></refsect2>
232 <refsect2>
233 <title><anchor id="GnomeVFSFilePermissions"/>enum GnomeVFSFilePermissions</title>
234 <indexterm><primary>GnomeVFSFilePermissions</primary></indexterm><programlisting>typedef enum {
235         GNOME_VFS_PERM_SUID = S_ISUID,
236         GNOME_VFS_PERM_SGID = S_ISGID,  
237         GNOME_VFS_PERM_STICKY = 01000,  /* S_ISVTX not defined on all systems */
238         GNOME_VFS_PERM_USER_READ = S_IRUSR,
239         GNOME_VFS_PERM_USER_WRITE = S_IWUSR,
240         GNOME_VFS_PERM_USER_EXEC = S_IXUSR,
241         GNOME_VFS_PERM_USER_ALL = S_IRUSR | S_IWUSR | S_IXUSR,
242         GNOME_VFS_PERM_GROUP_READ = S_IRGRP,
243         GNOME_VFS_PERM_GROUP_WRITE = S_IWGRP,
244         GNOME_VFS_PERM_GROUP_EXEC = S_IXGRP,
245         GNOME_VFS_PERM_GROUP_ALL = S_IRGRP | S_IWGRP | S_IXGRP,
246         GNOME_VFS_PERM_OTHER_READ = S_IROTH,
247         GNOME_VFS_PERM_OTHER_WRITE = S_IWOTH,
248         GNOME_VFS_PERM_OTHER_EXEC = S_IXOTH,
249         GNOME_VFS_PERM_OTHER_ALL = S_IROTH | S_IWOTH | S_IXOTH,
250         GNOME_VFS_PERM_ACCESS_READABLE   = 1 &lt;&lt; 16,
251         GNOME_VFS_PERM_ACCESS_WRITABLE   = 1 &lt;&lt; 17,
252         GNOME_VFS_PERM_ACCESS_EXECUTABLE = 1 &lt;&lt; 18
253 } GnomeVFSFilePermissions;
254 </programlisting>
255 <para>
256 File permissions. These are the same as the Unix ones, but we wrap them
257 into a nicer VFS-like enum.</para>
258 <para>
259
260 </para><variablelist role="enum">
261 <varlistentry>
262 <term><literal>GNOME_VFS_PERM_SUID</literal></term>
263 <listitem><simpara> UID bit
264 </simpara></listitem>
265 </varlistentry>
266 <varlistentry>
267 <term><literal>GNOME_VFS_PERM_SGID</literal></term>
268 <listitem><simpara> GID bit
269 </simpara></listitem>
270 </varlistentry>
271 <varlistentry>
272 <term><literal>GNOME_VFS_PERM_STICKY</literal></term>
273 <listitem><simpara> Sticky bit.
274 </simpara></listitem>
275 </varlistentry>
276 <varlistentry>
277 <term><literal>GNOME_VFS_PERM_USER_READ</literal></term>
278 <listitem><simpara> Owner has read permission
279 </simpara></listitem>
280 </varlistentry>
281 <varlistentry>
282 <term><literal>GNOME_VFS_PERM_USER_WRITE</literal></term>
283 <listitem><simpara> Owner has write permission
284 </simpara></listitem>
285 </varlistentry>
286 <varlistentry>
287 <term><literal>GNOME_VFS_PERM_USER_EXEC</literal></term>
288 <listitem><simpara> Owner has execution permission
289 </simpara></listitem>
290 </varlistentry>
291 <varlistentry>
292 <term><literal>GNOME_VFS_PERM_USER_ALL</literal></term>
293 <listitem><simpara> Owner has all permissions
294 </simpara></listitem>
295 </varlistentry>
296 <varlistentry>
297 <term><literal>GNOME_VFS_PERM_GROUP_READ</literal></term>
298 <listitem><simpara> Group has read permission
299 </simpara></listitem>
300 </varlistentry>
301 <varlistentry>
302 <term><literal>GNOME_VFS_PERM_GROUP_WRITE</literal></term>
303 <listitem><simpara> Group has write permission
304 </simpara></listitem>
305 </varlistentry>
306 <varlistentry>
307 <term><literal>GNOME_VFS_PERM_GROUP_EXEC</literal></term>
308 <listitem><simpara> Group has execution permission
309 </simpara></listitem>
310 </varlistentry>
311 <varlistentry>
312 <term><literal>GNOME_VFS_PERM_GROUP_ALL</literal></term>
313 <listitem><simpara> Group has all permissions
314 </simpara></listitem>
315 </varlistentry>
316 <varlistentry>
317 <term><literal>GNOME_VFS_PERM_OTHER_READ</literal></term>
318 <listitem><simpara> Others have read permission
319 </simpara></listitem>
320 </varlistentry>
321 <varlistentry>
322 <term><literal>GNOME_VFS_PERM_OTHER_WRITE</literal></term>
323 <listitem><simpara> Others have write permission
324 </simpara></listitem>
325 </varlistentry>
326 <varlistentry>
327 <term><literal>GNOME_VFS_PERM_OTHER_EXEC</literal></term>
328 <listitem><simpara> Others have execution permission
329 </simpara></listitem>
330 </varlistentry>
331 <varlistentry>
332 <term><literal>GNOME_VFS_PERM_OTHER_ALL</literal></term>
333 <listitem><simpara> Others have all permissions
334 </simpara></listitem>
335 </varlistentry>
336 <varlistentry>
337 <term><literal>GNOME_VFS_PERM_ACCESS_READABLE</literal></term>
338 <listitem><simpara>
339 </simpara></listitem>
340 </varlistentry>
341 <varlistentry>
342 <term><literal>GNOME_VFS_PERM_ACCESS_WRITABLE</literal></term>
343 <listitem><simpara>
344 </simpara></listitem>
345 </varlistentry>
346 <varlistentry>
347 <term><literal>GNOME_VFS_PERM_ACCESS_EXECUTABLE</literal></term>
348 <listitem><simpara>
349 </simpara></listitem>
350 </varlistentry>
351 </variablelist></refsect2>
352 <refsect2>
353 <title><anchor id="GnomeVFSFileInfoOptions"/>enum GnomeVFSFileInfoOptions</title>
354 <indexterm><primary>GnomeVFSFileInfoOptions</primary></indexterm><programlisting>typedef enum {
355         GNOME_VFS_FILE_INFO_DEFAULT = 0,
356         GNOME_VFS_FILE_INFO_GET_MIME_TYPE = 1 &lt;&lt; 0,
357         GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE = 1 &lt;&lt; 1,
358         GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE = 1 &lt;&lt; 2,
359         GNOME_VFS_FILE_INFO_FOLLOW_LINKS = 1 &lt;&lt; 3,
360         GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS = 1 &lt;&lt; 4
361 } GnomeVFSFileInfoOptions;
362 </programlisting>
363 <para>
364 Packed boolean bitfield representing options that can
365 be passed into a <link linkend="gnome-vfs-get-file-info"><function>gnome_vfs_get_file_info()</function></link> call (or other
366 related calls that return file info) and affect the operation
367 of get_file_info.</para>
368 <para>
369
370 </para><variablelist role="enum">
371 <varlistentry>
372 <term><literal>GNOME_VFS_FILE_INFO_DEFAULT</literal></term>
373 <listitem><simpara> default flags
374 </simpara></listitem>
375 </varlistentry>
376 <varlistentry>
377 <term><literal>GNOME_VFS_FILE_INFO_GET_MIME_TYPE</literal></term>
378 <listitem><simpara> detect the MIME type
379 </simpara></listitem>
380 </varlistentry>
381 <varlistentry>
382 <term><literal>GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE</literal></term>
383 <listitem><simpara> only use fast MIME type 
384 detection (extensions)
385 </simpara></listitem>
386 </varlistentry>
387 <varlistentry>
388 <term><literal>GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE</literal></term>
389 <listitem><simpara> force slow MIME type 
390 detection where available (sniffing, algorithmic detection, etc)
391 </simpara></listitem>
392 </varlistentry>
393 <varlistentry>
394 <term><literal>GNOME_VFS_FILE_INFO_FOLLOW_LINKS</literal></term>
395 <listitem><simpara> automatically follow symbolic 
396 links and retrieve the properties of their target (recommended)
397 </simpara></listitem>
398 </varlistentry>
399 <varlistentry>
400 <term><literal>GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS</literal></term>
401 <listitem><simpara> tries to get data similar 
402 to what would return access(2) on a local file system (ie is the 
403 file readable, writable and/or executable). Can be really slow on 
404 remote file systems
405 </simpara></listitem>
406 </varlistentry>
407 </variablelist></refsect2>
408 <refsect2>
409 <title><anchor id="GnomeVFSSetFileInfoMask"/>enum GnomeVFSSetFileInfoMask</title>
410 <indexterm><primary>GnomeVFSSetFileInfoMask</primary></indexterm><programlisting>typedef enum {
411         GNOME_VFS_SET_FILE_INFO_NONE = 0,
412         GNOME_VFS_SET_FILE_INFO_NAME = 1 &lt;&lt; 0,
413         GNOME_VFS_SET_FILE_INFO_PERMISSIONS = 1 &lt;&lt; 1,
414         GNOME_VFS_SET_FILE_INFO_OWNER = 1 &lt;&lt; 2,
415         GNOME_VFS_SET_FILE_INFO_TIME = 1 &lt;&lt; 3
416 } GnomeVFSSetFileInfoMask;
417 </programlisting>
418 <para>
419 Packed boolean bitfield representing the aspects of the file
420 to be changed in a <link linkend="gnome-vfs-set-file-info"><function>gnome_vfs_set_file_info()</function></link> call.</para>
421 <para>
422
423 </para><variablelist role="enum">
424 <varlistentry>
425 <term><literal>GNOME_VFS_SET_FILE_INFO_NONE</literal></term>
426 <listitem><simpara> don't set any file info fields
427 </simpara></listitem>
428 </varlistentry>
429 <varlistentry>
430 <term><literal>GNOME_VFS_SET_FILE_INFO_NAME</literal></term>
431 <listitem><simpara> change the name
432 </simpara></listitem>
433 </varlistentry>
434 <varlistentry>
435 <term><literal>GNOME_VFS_SET_FILE_INFO_PERMISSIONS</literal></term>
436 <listitem><simpara> change the permissions
437 </simpara></listitem>
438 </varlistentry>
439 <varlistentry>
440 <term><literal>GNOME_VFS_SET_FILE_INFO_OWNER</literal></term>
441 <listitem><simpara> change the file's owner
442 </simpara></listitem>
443 </varlistentry>
444 <varlistentry>
445 <term><literal>GNOME_VFS_SET_FILE_INFO_TIME</literal></term>
446 <listitem><simpara> change the file's time stamp(s)
447 </simpara></listitem>
448 </varlistentry>
449 </variablelist></refsect2>
450 <refsect2>
451 <title><anchor id="GnomeVFSGetFileInfoResult"/>GnomeVFSGetFileInfoResult</title>
452 <indexterm><primary>GnomeVFSGetFileInfoResult</primary></indexterm><programlisting>typedef struct {
453         GnomeVFSURI *uri;
454         GnomeVFSResult result;
455         GnomeVFSFileInfo *file_info;
456 } GnomeVFSGetFileInfoResult;
457 </programlisting>
458 <para>
459
460 </para></refsect2>
461 <refsect2>
462 <title><anchor id="GnomeVFSInodeNumber"/>GnomeVFSInodeNumber</title>
463 <indexterm><primary>GnomeVFSInodeNumber</primary></indexterm><programlisting>typedef GnomeVFSFileSize GnomeVFSInodeNumber;
464 </programlisting>
465 <para>
466 Represents the i-node of a file, this is a low level data structure
467 that the operating system uses to hold information about a file.</para>
468 <para>
469
470 </para></refsect2>
471 <refsect2>
472 <title><anchor id="GnomeVFSFileInfo"/>GnomeVFSFileInfo</title>
473 <indexterm><primary>GnomeVFSFileInfo</primary></indexterm><programlisting>typedef struct {
474         /* Base name of the file (no path).  */
475         char *name;
476
477         /* Fields which are actually valid in this structure. */
478         GnomeVFSFileInfoFields valid_fields;
479
480         /* File type (i.e. regular, directory, block device...).  */
481         GnomeVFSFileType type;
482
483         /* File permissions.  */
484         GnomeVFSFilePermissions permissions;
485
486         /* Flags for this file.  */
487         GnomeVFSFileFlags flags;
488
489         /* These are only valid if `is_local' is TRUE (see below).  */
490         dev_t device;
491         GnomeVFSInodeNumber inode;
492
493         /* Link count.  */
494         guint link_count;
495
496         /* UID, GID.  */
497         guint uid;
498         guint gid;
499
500         /* Size in bytes.  */
501         GnomeVFSFileSize size;
502
503         /* Size measured in units of 512-byte blocks.  */
504         GnomeVFSFileSize block_count;
505
506         /* Optimal buffer size for reading/writing the file.  */
507         guint io_block_size;
508
509         /* Access, modification and change times.  */
510         time_t atime;
511         time_t mtime;
512         time_t ctime;
513
514         /* If the file is a symlink (see `flags'), this specifies the file the
515            link points to.  */
516         char *symlink_name;
517
518         /* MIME type.  */
519         char *mime_type;
520
521         guint refcount;
522
523         /* Reserved for future expansions to GnomeVFSFileInfo without having
524            to break ABI compatibility */
525         void *reserved1;
526         void *reserved2;
527         void *reserved3;
528         void *reserved4;
529         void *reserved5;
530 } GnomeVFSFileInfo;
531 </programlisting>
532 <para>
533 The GnomeVFSFileInfo structure contains information about a file.</para>
534 <para>
535
536 </para></refsect2>
537 <refsect2>
538 <title><anchor id="GNOME-VFS-FILE-INFO-SYMLINK-CAPS"/>GNOME_VFS_FILE_INFO_SYMLINK()</title>
539 <indexterm><primary>GNOME_VFS_FILE_INFO_SYMLINK</primary></indexterm><programlisting>#define     GNOME_VFS_FILE_INFO_SYMLINK(info)</programlisting>
540 <para>
541 Determines whether a file is a symbolic link given <parameter>info</parameter>.</para>
542 <para>
543
544 </para><variablelist role="params">
545 <varlistentry><term><parameter>info</parameter>&nbsp;:</term>
546 <listitem><simpara> GnomeVFSFileInfo struct
547 </simpara></listitem></varlistentry>
548 </variablelist></refsect2>
549 <refsect2>
550 <title><anchor id="GNOME-VFS-FILE-INFO-SET-SYMLINK-CAPS"/>GNOME_VFS_FILE_INFO_SET_SYMLINK()</title>
551 <indexterm><primary>GNOME_VFS_FILE_INFO_SET_SYMLINK</primary></indexterm><programlisting>#define     GNOME_VFS_FILE_INFO_SET_SYMLINK(info, value)</programlisting>
552 <para>
553 Set the symbolic link field in <parameter>info</parameter> to <parameter>value</parameter>.</para>
554 <para>
555
556 </para><variablelist role="params">
557 <varlistentry><term><parameter>info</parameter>&nbsp;:</term>
558 <listitem><simpara> GnomeVFSFileInfo struct
559 </simpara></listitem></varlistentry>
560 <varlistentry><term><parameter>value</parameter>&nbsp;:</term>
561 <listitem><simpara> if <literal>TRUE</literal>, <parameter>info</parameter> is set to indicate the file is a symbolic link
562 </simpara></listitem></varlistentry>
563 </variablelist></refsect2>
564 <refsect2>
565 <title><anchor id="GNOME-VFS-FILE-INFO-LOCAL-CAPS"/>GNOME_VFS_FILE_INFO_LOCAL()</title>
566 <indexterm><primary>GNOME_VFS_FILE_INFO_LOCAL</primary></indexterm><programlisting>#define     GNOME_VFS_FILE_INFO_LOCAL(info)</programlisting>
567 <para>
568 Determines whether a file is local given <parameter>info</parameter>.</para>
569 <para>
570
571 </para><variablelist role="params">
572 <varlistentry><term><parameter>info</parameter>&nbsp;:</term>
573 <listitem><simpara> GnomeVFSFileInfo struct
574 </simpara></listitem></varlistentry>
575 </variablelist></refsect2>
576 <refsect2>
577 <title><anchor id="GNOME-VFS-FILE-INFO-SET-LOCAL-CAPS"/>GNOME_VFS_FILE_INFO_SET_LOCAL()</title>
578 <indexterm><primary>GNOME_VFS_FILE_INFO_SET_LOCAL</primary></indexterm><programlisting>#define     GNOME_VFS_FILE_INFO_SET_LOCAL(info, value)</programlisting>
579 <para>
580 Set the "local file" field in <parameter>info</parameter> to <parameter>value</parameter>.</para>
581 <para>
582
583 </para><variablelist role="params">
584 <varlistentry><term><parameter>info</parameter>&nbsp;:</term>
585 <listitem><simpara> GnomeVFSFileInfo struct
586 </simpara></listitem></varlistentry>
587 <varlistentry><term><parameter>value</parameter>&nbsp;:</term>
588 <listitem><simpara> if <literal>TRUE</literal>, <parameter>info</parameter> is set to indicate the file is local
589 </simpara></listitem></varlistentry>
590 </variablelist></refsect2>
591 <refsect2>
592 <title><anchor id="GNOME-VFS-FILE-INFO-SUID-CAPS"/>GNOME_VFS_FILE_INFO_SUID()</title>
593 <indexterm><primary>GNOME_VFS_FILE_INFO_SUID</primary></indexterm><programlisting>#define     GNOME_VFS_FILE_INFO_SUID(info)</programlisting>
594 <para>
595 Determines whether a file belongs to the super user.</para>
596 <para>
597
598 </para><variablelist role="params">
599 <varlistentry><term><parameter>info</parameter>&nbsp;:</term>
600 <listitem><simpara> GnomeVFSFileInfo struct
601 </simpara></listitem></varlistentry>
602 </variablelist></refsect2>
603 <refsect2>
604 <title><anchor id="GNOME-VFS-FILE-INFO-SGID-CAPS"/>GNOME_VFS_FILE_INFO_SGID()</title>
605 <indexterm><primary>GNOME_VFS_FILE_INFO_SGID</primary></indexterm><programlisting>#define     GNOME_VFS_FILE_INFO_SGID(info)</programlisting>
606 <para>
607 Determines whether a file belongs to the super user's group.</para>
608 <para>
609
610 </para><variablelist role="params">
611 <varlistentry><term><parameter>info</parameter>&nbsp;:</term>
612 <listitem><simpara> GnomeVFSFileInfo struct
613 </simpara></listitem></varlistentry>
614 </variablelist></refsect2>
615 <refsect2>
616 <title><anchor id="GNOME-VFS-FILE-INFO-STICKY-CAPS"/>GNOME_VFS_FILE_INFO_STICKY()</title>
617 <indexterm><primary>GNOME_VFS_FILE_INFO_STICKY</primary></indexterm><programlisting>#define     GNOME_VFS_FILE_INFO_STICKY(info)</programlisting>
618 <para>
619 Determines whether a file has the sticky bit set, given <parameter>info</parameter></para>
620 <para>
621
622 </para><variablelist role="params">
623 <varlistentry><term><parameter>info</parameter>&nbsp;:</term>
624 <listitem><simpara> GnomeVFSFileInfo struct
625 </simpara></listitem></varlistentry>
626 </variablelist></refsect2>
627 <refsect2>
628 <title><anchor id="GNOME-VFS-FILE-INFO-SET-SUID-CAPS"/>GNOME_VFS_FILE_INFO_SET_SUID()</title>
629 <indexterm><primary>GNOME_VFS_FILE_INFO_SET_SUID</primary></indexterm><programlisting>#define     GNOME_VFS_FILE_INFO_SET_SUID(info, value)</programlisting>
630 <para>
631 Set the SUID field in <parameter>info</parameter> to <parameter>value</parameter>.</para>
632 <para>
633
634 </para><variablelist role="params">
635 <varlistentry><term><parameter>info</parameter>&nbsp;:</term>
636 <listitem><simpara> GnomeVFSFileInfo struct
637 </simpara></listitem></varlistentry>
638 <varlistentry><term><parameter>value</parameter>&nbsp;:</term>
639 <listitem><simpara> if <literal>TRUE</literal>, <parameter>info</parameter> is set to indicate the file belongs to the super user
640 </simpara></listitem></varlistentry>
641 </variablelist></refsect2>
642 <refsect2>
643 <title><anchor id="GNOME-VFS-FILE-INFO-SET-SGID-CAPS"/>GNOME_VFS_FILE_INFO_SET_SGID()</title>
644 <indexterm><primary>GNOME_VFS_FILE_INFO_SET_SGID</primary></indexterm><programlisting>#define     GNOME_VFS_FILE_INFO_SET_SGID(info, value)</programlisting>
645 <para>
646 Set the SGID field in <parameter>info</parameter> to <parameter>value</parameter>.</para>
647 <para>
648
649 </para><variablelist role="params">
650 <varlistentry><term><parameter>info</parameter>&nbsp;:</term>
651 <listitem><simpara> GnomeVFSFileInfo struct
652 </simpara></listitem></varlistentry>
653 <varlistentry><term><parameter>value</parameter>&nbsp;:</term>
654 <listitem><simpara> if <literal>TRUE</literal>, <parameter>info</parameter> is set to indicate the file belongs to the super user's group
655 </simpara></listitem></varlistentry>
656 </variablelist></refsect2>
657 <refsect2>
658 <title><anchor id="GNOME-VFS-FILE-INFO-SET-STICKY-CAPS"/>GNOME_VFS_FILE_INFO_SET_STICKY()</title>
659 <indexterm><primary>GNOME_VFS_FILE_INFO_SET_STICKY</primary></indexterm><programlisting>#define     GNOME_VFS_FILE_INFO_SET_STICKY(info, value)</programlisting>
660 <para>
661 Set the sticky bit in <parameter>info</parameter> to <parameter>value</parameter>.</para>
662 <para>
663
664 </para><variablelist role="params">
665 <varlistentry><term><parameter>info</parameter>&nbsp;:</term>
666 <listitem><simpara> GnomeVFSFileInfo struct
667 </simpara></listitem></varlistentry>
668 <varlistentry><term><parameter>value</parameter>&nbsp;:</term>
669 <listitem><simpara> if <literal>TRUE</literal>, <parameter>info</parameter> is set to indicate the file has the sticky bit set
670 </simpara></listitem></varlistentry>
671 </variablelist></refsect2>
672 <refsect2>
673 <title><anchor id="gnome-vfs-file-info-new"/>gnome_vfs_file_info_new ()</title>
674 <indexterm><primary>gnome_vfs_file_info_new</primary></indexterm><programlisting><link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link>* gnome_vfs_file_info_new   (void);</programlisting>
675 <para>
676 Allocate and initialize a new file information struct.</para>
677 <para>
678
679 </para><variablelist role="params">
680 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> A pointer to the new file information struct.
681 </simpara></listitem></varlistentry>
682 </variablelist></refsect2>
683 <refsect2>
684 <title><anchor id="gnome-vfs-file-info-unref"/>gnome_vfs_file_info_unref ()</title>
685 <indexterm><primary>gnome_vfs_file_info_unref</primary></indexterm><programlisting><link linkend="void">void</link>        gnome_vfs_file_info_unref       (<link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *info);</programlisting>
686 <para>
687 Destroy <parameter>info</parameter></para>
688 <para>
689
690 </para><variablelist role="params">
691 <varlistentry><term><parameter>info</parameter>&nbsp;:</term>
692 <listitem><simpara> Pointer to a file information struct
693 </simpara></listitem></varlistentry>
694 </variablelist></refsect2>
695 <refsect2>
696 <title><anchor id="gnome-vfs-file-info-ref"/>gnome_vfs_file_info_ref ()</title>
697 <indexterm><primary>gnome_vfs_file_info_ref</primary></indexterm><programlisting><link linkend="void">void</link>        gnome_vfs_file_info_ref         (<link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *info);</programlisting>
698 <para>
699 Increment reference count</para>
700 <para>
701
702 </para><variablelist role="params">
703 <varlistentry><term><parameter>info</parameter>&nbsp;:</term>
704 <listitem><simpara> Pointer to a file information struct
705 </simpara></listitem></varlistentry>
706 </variablelist></refsect2>
707 <refsect2>
708 <title><anchor id="gnome-vfs-file-info-clear"/>gnome_vfs_file_info_clear ()</title>
709 <indexterm><primary>gnome_vfs_file_info_clear</primary></indexterm><programlisting><link linkend="void">void</link>        gnome_vfs_file_info_clear       (<link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *info);</programlisting>
710 <para>
711 Clear <parameter>info</parameter> so that it's ready to accept new data. This is
712 supposed to be used when <parameter>info</parameter> already contains meaningful information which
713 we want to replace.</para>
714 <para>
715
716 </para><variablelist role="params">
717 <varlistentry><term><parameter>info</parameter>&nbsp;:</term>
718 <listitem><simpara> Pointer to a file information struct
719 </simpara></listitem></varlistentry>
720 </variablelist></refsect2>
721 <refsect2>
722 <title><anchor id="gnome-vfs-file-info-get-mime-type"/>gnome_vfs_file_info_get_mime_type ()</title>
723 <indexterm><primary>gnome_vfs_file_info_get_mime_type</primary></indexterm><programlisting>const <link linkend="char">char</link>* gnome_vfs_file_info_get_mime_type
724                                             (<link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *info);</programlisting>
725 <para>
726 Retrieve MIME type from <parameter>info</parameter>. There is no need to free the return
727 value.</para>
728 <para>
729
730 </para><variablelist role="params">
731 <varlistentry><term><parameter>info</parameter>&nbsp;:</term>
732 <listitem><simpara> A pointer to a file information struct
733 </simpara></listitem></varlistentry>
734 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> A pointer to a string representing the MIME type.
735 </simpara></listitem></varlistentry>
736 </variablelist></refsect2>
737 <refsect2>
738 <title><anchor id="gnome-vfs-file-info-copy"/>gnome_vfs_file_info_copy ()</title>
739 <indexterm><primary>gnome_vfs_file_info_copy</primary></indexterm><programlisting><link linkend="void">void</link>        gnome_vfs_file_info_copy        (<link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *dest,
740                                              const <link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *src);</programlisting>
741 <para>
742 Copy information from <parameter>src</parameter> into <parameter>dest</parameter>.</para>
743 <para>
744
745 </para><variablelist role="params">
746 <varlistentry><term><parameter>dest</parameter>&nbsp;:</term>
747 <listitem><simpara> Pointer to a struct to copy <parameter>src</parameter>'s information into
748 </simpara></listitem></varlistentry>
749 <varlistentry><term><parameter>src</parameter>&nbsp;:</term>
750 <listitem><simpara> Pointer to the information to be copied into <parameter>dest</parameter>
751 </simpara></listitem></varlistentry>
752 </variablelist></refsect2>
753 <refsect2>
754 <title><anchor id="gnome-vfs-file-info-dup"/>gnome_vfs_file_info_dup ()</title>
755 <indexterm><primary>gnome_vfs_file_info_dup</primary></indexterm><programlisting><link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link>* gnome_vfs_file_info_dup   (const <link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *orig);</programlisting>
756 <para>
757 Duplicates <parameter>orig</parameter> and returns it.</para>
758 <para>
759
760 </para><variablelist role="params">
761 <varlistentry><term><parameter>orig</parameter>&nbsp;:</term>
762 <listitem><simpara> Pointer to a file information structure to duplicate
763 </simpara></listitem></varlistentry>
764 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a new file information struct that duplicates the information in <parameter>orig</parameter>.
765 </simpara></listitem></varlistentry>
766 </variablelist></refsect2>
767 <refsect2>
768 <title><anchor id="gnome-vfs-file-info-matches"/>gnome_vfs_file_info_matches ()</title>
769 <indexterm><primary>gnome_vfs_file_info_matches</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    gnome_vfs_file_info_matches     (const <link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *a,
770                                              const <link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *b);</programlisting>
771 <para>
772 Compare the two file info structs, return TRUE if they match.</para>
773 <para>
774
775 </para><variablelist role="params">
776 <varlistentry><term><parameter>a</parameter>&nbsp;:</term>
777 <listitem><simpara> first GnomeVFSFileInfo struct to compare
778 </simpara></listitem></varlistentry>
779 <varlistentry><term><parameter>b</parameter>&nbsp;:</term>
780 <listitem><simpara> second GnomeVFSFileInfo struct to compare
781 </simpara></listitem></varlistentry>
782 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> TRUE if the two GnomeVFSFileInfos match, otherwise return FALSE.
783 </simpara></listitem></varlistentry>
784 </variablelist></refsect2>
785 <refsect2>
786 <title><anchor id="gnome-vfs-file-info-list-ref"/>gnome_vfs_file_info_list_ref ()</title>
787 <indexterm><primary>gnome_vfs_file_info_list_ref</primary></indexterm><programlisting><link linkend="GList">GList</link>*      gnome_vfs_file_info_list_ref    (<link linkend="GList">GList</link> *list);</programlisting>
788 <para>
789 Increments the reference count of the items in <parameter>list</parameter> by one.</para>
790 <para>
791
792 </para><variablelist role="params">
793 <varlistentry><term><parameter>list</parameter>&nbsp;:</term>
794 <listitem><simpara> list of GnomeVFSFileInfo elements
795 </simpara></listitem></varlistentry>
796 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <parameter>list</parameter>
797 </simpara></listitem></varlistentry>
798 </variablelist></refsect2>
799 <refsect2>
800 <title><anchor id="gnome-vfs-file-info-list-unref"/>gnome_vfs_file_info_list_unref ()</title>
801 <indexterm><primary>gnome_vfs_file_info_list_unref</primary></indexterm><programlisting><link linkend="GList">GList</link>*      gnome_vfs_file_info_list_unref  (<link linkend="GList">GList</link> *list);</programlisting>
802 <para>
803 Decrements the reference count of the items in <parameter>list</parameter> by one.
804 Note that the list is *not freed* even if each member of the list
805 is freed.</para>
806 <para>
807
808 </para><variablelist role="params">
809 <varlistentry><term><parameter>list</parameter>&nbsp;:</term>
810 <listitem><simpara> list of GnomeVFSFileInfo elements
811 </simpara></listitem></varlistentry>
812 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <parameter>list</parameter>
813 </simpara></listitem></varlistentry>
814 </variablelist></refsect2>
815 <refsect2>
816 <title><anchor id="gnome-vfs-file-info-list-copy"/>gnome_vfs_file_info_list_copy ()</title>
817 <indexterm><primary>gnome_vfs_file_info_list_copy</primary></indexterm><programlisting><link linkend="GList">GList</link>*      gnome_vfs_file_info_list_copy   (<link linkend="GList">GList</link> *list);</programlisting>
818 <para>
819 Creates a duplicate of <parameter>list</parameter>, and references each member of
820 that list.</para>
821 <para>
822
823 </para><variablelist role="params">
824 <varlistentry><term><parameter>list</parameter>&nbsp;:</term>
825 <listitem><simpara> list of GnomeVFSFileInfo elements
826 </simpara></listitem></varlistentry>
827 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a newly referenced duplicate of <parameter>list</parameter>
828 </simpara></listitem></varlistentry>
829 </variablelist></refsect2>
830 <refsect2>
831 <title><anchor id="gnome-vfs-file-info-list-free"/>gnome_vfs_file_info_list_free ()</title>
832 <indexterm><primary>gnome_vfs_file_info_list_free</primary></indexterm><programlisting><link linkend="void">void</link>        gnome_vfs_file_info_list_free   (<link linkend="GList">GList</link> *list);</programlisting>
833 <para>
834 Decrements the reference count of each member of <parameter>list</parameter> by one,
835 and frees the list itself.</para>
836 <para>
837
838 </para><variablelist role="params">
839 <varlistentry><term><parameter>list</parameter>&nbsp;:</term>
840 <listitem><simpara> list of GnomeVFSFileInfo elements
841 </simpara></listitem></varlistentry>
842 </variablelist></refsect2>
843
844 </refsect1>
845
846
847
848
849 </refentry>