1 <refentry id="gnome-vfs-20-gnome-vfs-file-info">
3 <refentrytitle>GnomeVFSFileInfo</refentrytitle>
4 <manvolnum>3</manvolnum>
5 <refmiscinfo>GNOME-VFS-2.0 Library</refmiscinfo>
9 <refname>GnomeVFSFileInfo</refname><refpurpose>
10 stores information about files, GnomeVFS equivalent of stat</refpurpose>
13 <refsynopsisdiv><title>Synopsis</title>
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);
65 <title>Description</title>
72 <title>Details</title>
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 << 0,
78 GNOME_VFS_FILE_FLAGS_LOCAL = 1 << 1
82 Packed boolean bitfield representing special
83 flags a <link linkend="GnomeVFSFileInfo"><type>GnomeVFSFileInfo</type></link> struct can have.</para>
86 </para><variablelist role="enum">
88 <term><literal>GNOME_VFS_FILE_FLAGS_NONE</literal></term>
89 <listitem><simpara> no flags
93 <term><literal>GNOME_VFS_FILE_FLAGS_SYMLINK</literal></term>
94 <listitem><simpara> whether the file is a symlink.
98 <term><literal>GNOME_VFS_FILE_FLAGS_LOCAL</literal></term>
99 <listitem><simpara> whether the file is on a local filesystem
100 </simpara></listitem>
102 </variablelist></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
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>
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 << 0,
127 GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS = 1 << 1,
128 GNOME_VFS_FILE_INFO_FIELDS_FLAGS = 1 << 2,
129 GNOME_VFS_FILE_INFO_FIELDS_DEVICE = 1 << 3,
130 GNOME_VFS_FILE_INFO_FIELDS_INODE = 1 << 4,
131 GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT = 1 << 5,
132 GNOME_VFS_FILE_INFO_FIELDS_SIZE = 1 << 6,
133 GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT = 1 << 7,
134 GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE = 1 << 8,
135 GNOME_VFS_FILE_INFO_FIELDS_ATIME = 1 << 9,
136 GNOME_VFS_FILE_INFO_FIELDS_MTIME = 1 << 10,
137 GNOME_VFS_FILE_INFO_FIELDS_CTIME = 1 << 11,
138 GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME = 1 << 12,
139 GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE = 1 << 13,
140 GNOME_VFS_FILE_INFO_FIELDS_ACCESS = 1 << 14
141 } GnomeVFSFileInfoFields;
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>
149 </para><variablelist role="enum">
151 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_NONE</literal></term>
152 <listitem><simpara> No fields are valid
153 </simpara></listitem>
156 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_TYPE</literal></term>
157 <listitem><simpara> Type field is valid
158 </simpara></listitem>
161 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS</literal></term>
162 <listitem><simpara> Permissions field is valid
163 </simpara></listitem>
166 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_FLAGS</literal></term>
167 <listitem><simpara> Flags field is valid
168 </simpara></listitem>
171 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_DEVICE</literal></term>
172 <listitem><simpara> Device field is valid
173 </simpara></listitem>
176 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_INODE</literal></term>
177 <listitem><simpara> Inode field is valid
178 </simpara></listitem>
181 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT</literal></term>
182 <listitem><simpara> Link count field is valid
183 </simpara></listitem>
186 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_SIZE</literal></term>
187 <listitem><simpara> Size field is valid
188 </simpara></listitem>
191 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT</literal></term>
192 <listitem><simpara> Block count field is valid
193 </simpara></listitem>
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>
201 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_ATIME</literal></term>
202 <listitem><simpara> Access time field is valid
203 </simpara></listitem>
206 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_MTIME</literal></term>
207 <listitem><simpara> Modification time field is valid
208 </simpara></listitem>
211 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_CTIME</literal></term>
212 <listitem><simpara> Creating time field is valid
213 </simpara></listitem>
216 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME</literal></term>
217 <listitem><simpara> Symlink name field is valid
218 </simpara></listitem>
221 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE</literal></term>
222 <listitem><simpara> Mime type field is valid
223 </simpara></listitem>
226 <term><literal>GNOME_VFS_FILE_INFO_FIELDS_ACCESS</literal></term>
227 <listitem><simpara> Access bits of the permissions
229 </simpara></listitem>
231 </variablelist></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 << 16,
251 GNOME_VFS_PERM_ACCESS_WRITABLE = 1 << 17,
252 GNOME_VFS_PERM_ACCESS_EXECUTABLE = 1 << 18
253 } GnomeVFSFilePermissions;
256 File permissions. These are the same as the Unix ones, but we wrap them
257 into a nicer VFS-like enum.</para>
260 </para><variablelist role="enum">
262 <term><literal>GNOME_VFS_PERM_SUID</literal></term>
263 <listitem><simpara> UID bit
264 </simpara></listitem>
267 <term><literal>GNOME_VFS_PERM_SGID</literal></term>
268 <listitem><simpara> GID bit
269 </simpara></listitem>
272 <term><literal>GNOME_VFS_PERM_STICKY</literal></term>
273 <listitem><simpara> Sticky bit.
274 </simpara></listitem>
277 <term><literal>GNOME_VFS_PERM_USER_READ</literal></term>
278 <listitem><simpara> Owner has read permission
279 </simpara></listitem>
282 <term><literal>GNOME_VFS_PERM_USER_WRITE</literal></term>
283 <listitem><simpara> Owner has write permission
284 </simpara></listitem>
287 <term><literal>GNOME_VFS_PERM_USER_EXEC</literal></term>
288 <listitem><simpara> Owner has execution permission
289 </simpara></listitem>
292 <term><literal>GNOME_VFS_PERM_USER_ALL</literal></term>
293 <listitem><simpara> Owner has all permissions
294 </simpara></listitem>
297 <term><literal>GNOME_VFS_PERM_GROUP_READ</literal></term>
298 <listitem><simpara> Group has read permission
299 </simpara></listitem>
302 <term><literal>GNOME_VFS_PERM_GROUP_WRITE</literal></term>
303 <listitem><simpara> Group has write permission
304 </simpara></listitem>
307 <term><literal>GNOME_VFS_PERM_GROUP_EXEC</literal></term>
308 <listitem><simpara> Group has execution permission
309 </simpara></listitem>
312 <term><literal>GNOME_VFS_PERM_GROUP_ALL</literal></term>
313 <listitem><simpara> Group has all permissions
314 </simpara></listitem>
317 <term><literal>GNOME_VFS_PERM_OTHER_READ</literal></term>
318 <listitem><simpara> Others have read permission
319 </simpara></listitem>
322 <term><literal>GNOME_VFS_PERM_OTHER_WRITE</literal></term>
323 <listitem><simpara> Others have write permission
324 </simpara></listitem>
327 <term><literal>GNOME_VFS_PERM_OTHER_EXEC</literal></term>
328 <listitem><simpara> Others have execution permission
329 </simpara></listitem>
332 <term><literal>GNOME_VFS_PERM_OTHER_ALL</literal></term>
333 <listitem><simpara> Others have all permissions
334 </simpara></listitem>
337 <term><literal>GNOME_VFS_PERM_ACCESS_READABLE</literal></term>
339 </simpara></listitem>
342 <term><literal>GNOME_VFS_PERM_ACCESS_WRITABLE</literal></term>
344 </simpara></listitem>
347 <term><literal>GNOME_VFS_PERM_ACCESS_EXECUTABLE</literal></term>
349 </simpara></listitem>
351 </variablelist></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 << 0,
357 GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE = 1 << 1,
358 GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE = 1 << 2,
359 GNOME_VFS_FILE_INFO_FOLLOW_LINKS = 1 << 3,
360 GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS = 1 << 4
361 } GnomeVFSFileInfoOptions;
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>
370 </para><variablelist role="enum">
372 <term><literal>GNOME_VFS_FILE_INFO_DEFAULT</literal></term>
373 <listitem><simpara> default flags
374 </simpara></listitem>
377 <term><literal>GNOME_VFS_FILE_INFO_GET_MIME_TYPE</literal></term>
378 <listitem><simpara> detect the MIME type
379 </simpara></listitem>
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>
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>
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>
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
405 </simpara></listitem>
407 </variablelist></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 << 0,
413 GNOME_VFS_SET_FILE_INFO_PERMISSIONS = 1 << 1,
414 GNOME_VFS_SET_FILE_INFO_OWNER = 1 << 2,
415 GNOME_VFS_SET_FILE_INFO_TIME = 1 << 3
416 } GnomeVFSSetFileInfoMask;
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>
423 </para><variablelist role="enum">
425 <term><literal>GNOME_VFS_SET_FILE_INFO_NONE</literal></term>
426 <listitem><simpara> don't set any file info fields
427 </simpara></listitem>
430 <term><literal>GNOME_VFS_SET_FILE_INFO_NAME</literal></term>
431 <listitem><simpara> change the name
432 </simpara></listitem>
435 <term><literal>GNOME_VFS_SET_FILE_INFO_PERMISSIONS</literal></term>
436 <listitem><simpara> change the permissions
437 </simpara></listitem>
440 <term><literal>GNOME_VFS_SET_FILE_INFO_OWNER</literal></term>
441 <listitem><simpara> change the file's owner
442 </simpara></listitem>
445 <term><literal>GNOME_VFS_SET_FILE_INFO_TIME</literal></term>
446 <listitem><simpara> change the file's time stamp(s)
447 </simpara></listitem>
449 </variablelist></refsect2>
451 <title><anchor id="GnomeVFSGetFileInfoResult"/>GnomeVFSGetFileInfoResult</title>
452 <indexterm><primary>GnomeVFSGetFileInfoResult</primary></indexterm><programlisting>typedef struct {
454 GnomeVFSResult result;
455 GnomeVFSFileInfo *file_info;
456 } GnomeVFSGetFileInfoResult;
462 <title><anchor id="GnomeVFSInodeNumber"/>GnomeVFSInodeNumber</title>
463 <indexterm><primary>GnomeVFSInodeNumber</primary></indexterm><programlisting>typedef GnomeVFSFileSize GnomeVFSInodeNumber;
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>
472 <title><anchor id="GnomeVFSFileInfo"/>GnomeVFSFileInfo</title>
473 <indexterm><primary>GnomeVFSFileInfo</primary></indexterm><programlisting>typedef struct {
474 /* Base name of the file (no path). */
477 /* Fields which are actually valid in this structure. */
478 GnomeVFSFileInfoFields valid_fields;
480 /* File type (i.e. regular, directory, block device...). */
481 GnomeVFSFileType type;
483 /* File permissions. */
484 GnomeVFSFilePermissions permissions;
486 /* Flags for this file. */
487 GnomeVFSFileFlags flags;
489 /* These are only valid if `is_local' is TRUE (see below). */
491 GnomeVFSInodeNumber inode;
501 GnomeVFSFileSize size;
503 /* Size measured in units of 512-byte blocks. */
504 GnomeVFSFileSize block_count;
506 /* Optimal buffer size for reading/writing the file. */
509 /* Access, modification and change times. */
514 /* If the file is a symlink (see `flags'), this specifies the file the
523 /* Reserved for future expansions to GnomeVFSFileInfo without having
524 to break ABI compatibility */
533 The GnomeVFSFileInfo structure contains information about a file.</para>
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>
541 Determines whether a file is a symbolic link given <parameter>info</parameter>.</para>
544 </para><variablelist role="params">
545 <varlistentry><term><parameter>info</parameter> :</term>
546 <listitem><simpara> GnomeVFSFileInfo struct
547 </simpara></listitem></varlistentry>
548 </variablelist></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>
553 Set the symbolic link field in <parameter>info</parameter> to <parameter>value</parameter>.</para>
556 </para><variablelist role="params">
557 <varlistentry><term><parameter>info</parameter> :</term>
558 <listitem><simpara> GnomeVFSFileInfo struct
559 </simpara></listitem></varlistentry>
560 <varlistentry><term><parameter>value</parameter> :</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>
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>
568 Determines whether a file is local given <parameter>info</parameter>.</para>
571 </para><variablelist role="params">
572 <varlistentry><term><parameter>info</parameter> :</term>
573 <listitem><simpara> GnomeVFSFileInfo struct
574 </simpara></listitem></varlistentry>
575 </variablelist></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>
580 Set the "local file" field in <parameter>info</parameter> to <parameter>value</parameter>.</para>
583 </para><variablelist role="params">
584 <varlistentry><term><parameter>info</parameter> :</term>
585 <listitem><simpara> GnomeVFSFileInfo struct
586 </simpara></listitem></varlistentry>
587 <varlistentry><term><parameter>value</parameter> :</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>
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>
595 Determines whether a file belongs to the super user.</para>
598 </para><variablelist role="params">
599 <varlistentry><term><parameter>info</parameter> :</term>
600 <listitem><simpara> GnomeVFSFileInfo struct
601 </simpara></listitem></varlistentry>
602 </variablelist></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>
607 Determines whether a file belongs to the super user's group.</para>
610 </para><variablelist role="params">
611 <varlistentry><term><parameter>info</parameter> :</term>
612 <listitem><simpara> GnomeVFSFileInfo struct
613 </simpara></listitem></varlistentry>
614 </variablelist></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>
619 Determines whether a file has the sticky bit set, given <parameter>info</parameter></para>
622 </para><variablelist role="params">
623 <varlistentry><term><parameter>info</parameter> :</term>
624 <listitem><simpara> GnomeVFSFileInfo struct
625 </simpara></listitem></varlistentry>
626 </variablelist></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>
631 Set the SUID field in <parameter>info</parameter> to <parameter>value</parameter>.</para>
634 </para><variablelist role="params">
635 <varlistentry><term><parameter>info</parameter> :</term>
636 <listitem><simpara> GnomeVFSFileInfo struct
637 </simpara></listitem></varlistentry>
638 <varlistentry><term><parameter>value</parameter> :</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>
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>
646 Set the SGID field in <parameter>info</parameter> to <parameter>value</parameter>.</para>
649 </para><variablelist role="params">
650 <varlistentry><term><parameter>info</parameter> :</term>
651 <listitem><simpara> GnomeVFSFileInfo struct
652 </simpara></listitem></varlistentry>
653 <varlistentry><term><parameter>value</parameter> :</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>
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>
661 Set the sticky bit in <parameter>info</parameter> to <parameter>value</parameter>.</para>
664 </para><variablelist role="params">
665 <varlistentry><term><parameter>info</parameter> :</term>
666 <listitem><simpara> GnomeVFSFileInfo struct
667 </simpara></listitem></varlistentry>
668 <varlistentry><term><parameter>value</parameter> :</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>
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>
676 Allocate and initialize a new file information struct.</para>
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>
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>
687 Destroy <parameter>info</parameter></para>
690 </para><variablelist role="params">
691 <varlistentry><term><parameter>info</parameter> :</term>
692 <listitem><simpara> Pointer to a file information struct
693 </simpara></listitem></varlistentry>
694 </variablelist></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>
699 Increment reference count</para>
702 </para><variablelist role="params">
703 <varlistentry><term><parameter>info</parameter> :</term>
704 <listitem><simpara> Pointer to a file information struct
705 </simpara></listitem></varlistentry>
706 </variablelist></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>
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>
716 </para><variablelist role="params">
717 <varlistentry><term><parameter>info</parameter> :</term>
718 <listitem><simpara> Pointer to a file information struct
719 </simpara></listitem></varlistentry>
720 </variablelist></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>
726 Retrieve MIME type from <parameter>info</parameter>. There is no need to free the return
730 </para><variablelist role="params">
731 <varlistentry><term><parameter>info</parameter> :</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>
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>
742 Copy information from <parameter>src</parameter> into <parameter>dest</parameter>.</para>
745 </para><variablelist role="params">
746 <varlistentry><term><parameter>dest</parameter> :</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> :</term>
750 <listitem><simpara> Pointer to the information to be copied into <parameter>dest</parameter>
751 </simpara></listitem></varlistentry>
752 </variablelist></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>
757 Duplicates <parameter>orig</parameter> and returns it.</para>
760 </para><variablelist role="params">
761 <varlistentry><term><parameter>orig</parameter> :</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>
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>
772 Compare the two file info structs, return TRUE if they match.</para>
775 </para><variablelist role="params">
776 <varlistentry><term><parameter>a</parameter> :</term>
777 <listitem><simpara> first GnomeVFSFileInfo struct to compare
778 </simpara></listitem></varlistentry>
779 <varlistentry><term><parameter>b</parameter> :</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>
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>
789 Increments the reference count of the items in <parameter>list</parameter> by one.</para>
792 </para><variablelist role="params">
793 <varlistentry><term><parameter>list</parameter> :</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>
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>
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
808 </para><variablelist role="params">
809 <varlistentry><term><parameter>list</parameter> :</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>
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>
819 Creates a duplicate of <parameter>list</parameter>, and references each member of
823 </para><variablelist role="params">
824 <varlistentry><term><parameter>list</parameter> :</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>
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>
834 Decrements the reference count of each member of <parameter>list</parameter> by one,
835 and frees the list itself.</para>
838 </para><variablelist role="params">
839 <varlistentry><term><parameter>list</parameter> :</term>
840 <listitem><simpara> list of GnomeVFSFileInfo elements
841 </simpara></listitem></varlistentry>
842 </variablelist></refsect2>