1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>
2 GnomeVFSFileInfo</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.0"><meta name="generator" content="GTK-Doc V1.1 (XML mode)"><style type="text/css">
3 .synopsis, .classsynopsis {
5 border: solid 1px #aaaaaa;
10 border: solid 1px #aaaaff;
19 border: solid 1px #ffaaaa;
26 .navigation a:visited {
32 </style><link rel="home" href="index.html" title="GnomeVFS - Filesystem Abstraction library"><link rel="up" href="data-types.html" title="Data Types"><link rel="previous" href="data-types.html" title="Data Types"><link rel="next" href="gnome-vfs-gnome-vfs-file-size.html" title="
33 GnomeVFSFileSize"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="data-types.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="data-types.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">GnomeVFS - Filesystem Abstraction library</th><td><a accesskey="n" href="gnome-vfs-gnome-vfs-file-size.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="refentry" lang="en"><a name="gnome-vfs-gnome-vfs-file-info"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2><span class="refentrytitle">
34 GnomeVFSFileInfo</span></h2><p>
35 GnomeVFSFileInfo —
36 stores information about files, GnomeVFS equivalent of stat</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
40 enum <a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileFlags">GnomeVFSFileFlags</a>;
41 enum <a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileType">GnomeVFSFileType</a>;
42 enum <a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfoFields">GnomeVFSFileInfoFields</a>;
43 enum <a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFilePermissions">GnomeVFSFilePermissions</a>;
44 enum <a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfoOptions">GnomeVFSFileInfoOptions</a>;
45 enum <a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSSetFileInfoMask">GnomeVFSSetFileInfoMask</a>;
46 typedef <a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSGetFileInfoResult">GnomeVFSGetFileInfoResult</a>;
47 typedef <a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSInodeNumber">GnomeVFSInodeNumber</a>;
48 typedef <a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a>;
49 #define <a href="gnome-vfs-gnome-vfs-file-info.html#GNOME-VFS-FILE-INFO-SYMLINK-CAPS">GNOME_VFS_FILE_INFO_SYMLINK</a> (info)
50 #define <a href="gnome-vfs-gnome-vfs-file-info.html#GNOME-VFS-FILE-INFO-SET-SYMLINK-CAPS">GNOME_VFS_FILE_INFO_SET_SYMLINK</a> (info, value)
51 #define <a href="gnome-vfs-gnome-vfs-file-info.html#GNOME-VFS-FILE-INFO-LOCAL-CAPS">GNOME_VFS_FILE_INFO_LOCAL</a> (info)
52 #define <a href="gnome-vfs-gnome-vfs-file-info.html#GNOME-VFS-FILE-INFO-SET-LOCAL-CAPS">GNOME_VFS_FILE_INFO_SET_LOCAL</a> (info, value)
53 #define <a href="gnome-vfs-gnome-vfs-file-info.html#GNOME-VFS-FILE-INFO-SUID-CAPS">GNOME_VFS_FILE_INFO_SUID</a> (info)
54 #define <a href="gnome-vfs-gnome-vfs-file-info.html#GNOME-VFS-FILE-INFO-SGID-CAPS">GNOME_VFS_FILE_INFO_SGID</a> (info)
55 #define <a href="gnome-vfs-gnome-vfs-file-info.html#GNOME-VFS-FILE-INFO-STICKY-CAPS">GNOME_VFS_FILE_INFO_STICKY</a> (info)
56 #define <a href="gnome-vfs-gnome-vfs-file-info.html#GNOME-VFS-FILE-INFO-SET-SUID-CAPS">GNOME_VFS_FILE_INFO_SET_SUID</a> (info, value)
57 #define <a href="gnome-vfs-gnome-vfs-file-info.html#GNOME-VFS-FILE-INFO-SET-SGID-CAPS">GNOME_VFS_FILE_INFO_SET_SGID</a> (info, value)
58 #define <a href="gnome-vfs-gnome-vfs-file-info.html#GNOME-VFS-FILE-INFO-SET-STICKY-CAPS">GNOME_VFS_FILE_INFO_SET_STICKY</a> (info, value)
59 <a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a>* <a href="gnome-vfs-gnome-vfs-file-info.html#gnome-vfs-file-info-new">gnome_vfs_file_info_new</a> (void);
60 void <a href="gnome-vfs-gnome-vfs-file-info.html#gnome-vfs-file-info-unref">gnome_vfs_file_info_unref</a> (<a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *info);
61 void <a href="gnome-vfs-gnome-vfs-file-info.html#gnome-vfs-file-info-ref">gnome_vfs_file_info_ref</a> (<a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *info);
62 void <a href="gnome-vfs-gnome-vfs-file-info.html#gnome-vfs-file-info-clear">gnome_vfs_file_info_clear</a> (<a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *info);
63 const char* <a href="gnome-vfs-gnome-vfs-file-info.html#gnome-vfs-file-info-get-mime-type">gnome_vfs_file_info_get_mime_type</a>
64 (<a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *info);
65 void <a href="gnome-vfs-gnome-vfs-file-info.html#gnome-vfs-file-info-copy">gnome_vfs_file_info_copy</a> (<a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *dest,
66 const <a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *src);
67 <a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a>* <a href="gnome-vfs-gnome-vfs-file-info.html#gnome-vfs-file-info-dup">gnome_vfs_file_info_dup</a> (const <a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *orig);
69 href="../glib/glib-Basic-Types.html#gboolean"
70 >gboolean</a> <a href="gnome-vfs-gnome-vfs-file-info.html#gnome-vfs-file-info-matches">gnome_vfs_file_info_matches</a> (const <a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *a,
71 const <a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *b);
73 href="../glib/glib-Doubly-Linked-Lists.html#GList"
74 >GList</a>* <a href="gnome-vfs-gnome-vfs-file-info.html#gnome-vfs-file-info-list-ref">gnome_vfs_file_info_list_ref</a> (<a
75 href="../glib/glib-Doubly-Linked-Lists.html#GList"
78 href="../glib/glib-Doubly-Linked-Lists.html#GList"
79 >GList</a>* <a href="gnome-vfs-gnome-vfs-file-info.html#gnome-vfs-file-info-list-unref">gnome_vfs_file_info_list_unref</a> (<a
80 href="../glib/glib-Doubly-Linked-Lists.html#GList"
83 href="../glib/glib-Doubly-Linked-Lists.html#GList"
84 >GList</a>* <a href="gnome-vfs-gnome-vfs-file-info.html#gnome-vfs-file-info-list-copy">gnome_vfs_file_info_list_copy</a> (<a
85 href="../glib/glib-Doubly-Linked-Lists.html#GList"
87 void <a href="gnome-vfs-gnome-vfs-file-info.html#gnome-vfs-file-info-list-free">gnome_vfs_file_info_list_free</a> (<a
88 href="../glib/glib-Doubly-Linked-Lists.html#GList"
90 </pre></div><div class="refsect1" lang="en"><h2>Description</h2><p>
92 </p></div><div class="refsect1" lang="en"><h2>Details</h2><div class="refsect2" lang="en"><h3><a name="GnomeVFSFileFlags"></a>enum GnomeVFSFileFlags</h3><pre class="programlisting">typedef enum {
93 GNOME_VFS_FILE_FLAGS_NONE = 0,
94 GNOME_VFS_FILE_FLAGS_SYMLINK = 1 << 0,
95 GNOME_VFS_FILE_FLAGS_LOCAL = 1 << 1
98 Packed boolean bitfield representing special
99 flags a <a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> struct can have.</p><p>
101 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_FLAGS_NONE</tt></span></td><td> no flags
102 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_FLAGS_SYMLINK</tt></span></td><td> whether the file is a symlink.
103 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_FLAGS_LOCAL</tt></span></td><td> whether the file is on a local filesystem
104 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="GnomeVFSFileType"></a>enum GnomeVFSFileType</h3><pre class="programlisting">typedef enum {
105 GNOME_VFS_FILE_TYPE_UNKNOWN,
106 GNOME_VFS_FILE_TYPE_REGULAR,
107 GNOME_VFS_FILE_TYPE_DIRECTORY,
108 GNOME_VFS_FILE_TYPE_FIFO,
109 GNOME_VFS_FILE_TYPE_SOCKET,
110 GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE,
111 GNOME_VFS_FILE_TYPE_BLOCK_DEVICE,
112 GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK
115 Identifies the kind of file represented by a <a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> struct. (note,
116 use of MIME types is preferred as this field may eventually disappear)</p><p>
118 </p></div><hr><div class="refsect2" lang="en"><h3><a name="GnomeVFSFileInfoFields"></a>enum GnomeVFSFileInfoFields</h3><pre class="programlisting">typedef enum {
119 GNOME_VFS_FILE_INFO_FIELDS_NONE = 0,
120 GNOME_VFS_FILE_INFO_FIELDS_TYPE = 1 << 0,
121 GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS = 1 << 1,
122 GNOME_VFS_FILE_INFO_FIELDS_FLAGS = 1 << 2,
123 GNOME_VFS_FILE_INFO_FIELDS_DEVICE = 1 << 3,
124 GNOME_VFS_FILE_INFO_FIELDS_INODE = 1 << 4,
125 GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT = 1 << 5,
126 GNOME_VFS_FILE_INFO_FIELDS_SIZE = 1 << 6,
127 GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT = 1 << 7,
128 GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE = 1 << 8,
129 GNOME_VFS_FILE_INFO_FIELDS_ATIME = 1 << 9,
130 GNOME_VFS_FILE_INFO_FIELDS_MTIME = 1 << 10,
131 GNOME_VFS_FILE_INFO_FIELDS_CTIME = 1 << 11,
132 GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME = 1 << 12,
133 GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE = 1 << 13,
134 GNOME_VFS_FILE_INFO_FIELDS_ACCESS = 1 << 14
135 } GnomeVFSFileInfoFields;
137 Flags indicating what fields in a GnomeVFSFileInfo struct are valid.
138 Name is always assumed valid (how else would you have gotten a
139 FileInfo struct otherwise?)</p><p>
141 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_NONE</tt></span></td><td> No fields are valid
142 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_TYPE</tt></span></td><td> Type field is valid
143 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS</tt></span></td><td> Permissions field is valid
144 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_FLAGS</tt></span></td><td> Flags field is valid
145 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_DEVICE</tt></span></td><td> Device field is valid
146 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_INODE</tt></span></td><td> Inode field is valid
147 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT</tt></span></td><td> Link count field is valid
148 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_SIZE</tt></span></td><td> Size field is valid
149 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT</tt></span></td><td> Block count field is valid
150 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE</tt></span></td><td> I/O Block Size field is valid
151 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_ATIME</tt></span></td><td> Access time field is valid
152 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_MTIME</tt></span></td><td> Modification time field is valid
153 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_CTIME</tt></span></td><td> Creating time field is valid
154 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME</tt></span></td><td> Symlink name field is valid
155 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE</tt></span></td><td> Mime type field is valid
156 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_ACCESS</tt></span></td><td> Access bits of the permissions
158 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="GnomeVFSFilePermissions"></a>enum GnomeVFSFilePermissions</h3><pre class="programlisting">typedef enum {
159 GNOME_VFS_PERM_SUID = S_ISUID,
160 GNOME_VFS_PERM_SGID = S_ISGID,
161 GNOME_VFS_PERM_STICKY = 01000, /* S_ISVTX not defined on all systems */
162 GNOME_VFS_PERM_USER_READ = S_IRUSR,
163 GNOME_VFS_PERM_USER_WRITE = S_IWUSR,
164 GNOME_VFS_PERM_USER_EXEC = S_IXUSR,
165 GNOME_VFS_PERM_USER_ALL = S_IRUSR | S_IWUSR | S_IXUSR,
166 GNOME_VFS_PERM_GROUP_READ = S_IRGRP,
167 GNOME_VFS_PERM_GROUP_WRITE = S_IWGRP,
168 GNOME_VFS_PERM_GROUP_EXEC = S_IXGRP,
169 GNOME_VFS_PERM_GROUP_ALL = S_IRGRP | S_IWGRP | S_IXGRP,
170 GNOME_VFS_PERM_OTHER_READ = S_IROTH,
171 GNOME_VFS_PERM_OTHER_WRITE = S_IWOTH,
172 GNOME_VFS_PERM_OTHER_EXEC = S_IXOTH,
173 GNOME_VFS_PERM_OTHER_ALL = S_IROTH | S_IWOTH | S_IXOTH,
174 GNOME_VFS_PERM_ACCESS_READABLE = 1 << 16,
175 GNOME_VFS_PERM_ACCESS_WRITABLE = 1 << 17,
176 GNOME_VFS_PERM_ACCESS_EXECUTABLE = 1 << 18
177 } GnomeVFSFilePermissions;
179 File permissions. These are the same as the Unix ones, but we wrap them
180 into a nicer VFS-like enum.</p><p>
182 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_SUID</tt></span></td><td> UID bit
183 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_SGID</tt></span></td><td> GID bit
184 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_STICKY</tt></span></td><td> Sticky bit.
185 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_USER_READ</tt></span></td><td> Owner has read permission
186 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_USER_WRITE</tt></span></td><td> Owner has write permission
187 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_USER_EXEC</tt></span></td><td> Owner has execution permission
188 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_USER_ALL</tt></span></td><td> Owner has all permissions
189 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_GROUP_READ</tt></span></td><td> Group has read permission
190 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_GROUP_WRITE</tt></span></td><td> Group has write permission
191 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_GROUP_EXEC</tt></span></td><td> Group has execution permission
192 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_GROUP_ALL</tt></span></td><td> Group has all permissions
193 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_OTHER_READ</tt></span></td><td> Others have read permission
194 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_OTHER_WRITE</tt></span></td><td> Others have write permission
195 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_OTHER_EXEC</tt></span></td><td> Others have execution permission
196 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_OTHER_ALL</tt></span></td><td> Others have all permissions
197 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_ACCESS_READABLE</tt></span></td><td>
198 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_ACCESS_WRITABLE</tt></span></td><td>
199 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_ACCESS_EXECUTABLE</tt></span></td><td>
200 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="GnomeVFSFileInfoOptions"></a>enum GnomeVFSFileInfoOptions</h3><pre class="programlisting">typedef enum {
201 GNOME_VFS_FILE_INFO_DEFAULT = 0,
202 GNOME_VFS_FILE_INFO_GET_MIME_TYPE = 1 << 0,
203 GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE = 1 << 1,
204 GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE = 1 << 2,
205 GNOME_VFS_FILE_INFO_FOLLOW_LINKS = 1 << 3,
206 GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS = 1 << 4
207 } GnomeVFSFileInfoOptions;
209 Packed boolean bitfield representing options that can
210 be passed into a <a href="gnome-vfs-gnome-vfs-file-info-ops.html#gnome-vfs-get-file-info">gnome_vfs_get_file_info</a>() call (or other
211 related calls that return file info) and affect the operation
212 of get_file_info.</p><p>
214 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_DEFAULT</tt></span></td><td> default flags
215 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_GET_MIME_TYPE</tt></span></td><td> detect the MIME type
216 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE</tt></span></td><td> only use fast MIME type
217 detection (extensions)
218 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE</tt></span></td><td> force slow MIME type
219 detection where available (sniffing, algorithmic detection, etc)
220 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FOLLOW_LINKS</tt></span></td><td> automatically follow symbolic
221 links and retrieve the properties of their target (recommended)
222 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS</tt></span></td><td> tries to get data similar
223 to what would return access(2) on a local file system (ie is the
224 file readable, writable and/or executable). Can be really slow on
226 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="GnomeVFSSetFileInfoMask"></a>enum GnomeVFSSetFileInfoMask</h3><pre class="programlisting">typedef enum {
227 GNOME_VFS_SET_FILE_INFO_NONE = 0,
228 GNOME_VFS_SET_FILE_INFO_NAME = 1 << 0,
229 GNOME_VFS_SET_FILE_INFO_PERMISSIONS = 1 << 1,
230 GNOME_VFS_SET_FILE_INFO_OWNER = 1 << 2,
231 GNOME_VFS_SET_FILE_INFO_TIME = 1 << 3
232 } GnomeVFSSetFileInfoMask;
234 Packed boolean bitfield representing the aspects of the file
235 to be changed in a <a href="gnome-vfs-gnome-vfs-file-info-ops.html#gnome-vfs-set-file-info">gnome_vfs_set_file_info</a>() call.</p><p>
237 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><tt class="literal">GNOME_VFS_SET_FILE_INFO_NONE</tt></span></td><td> don't set any file info fields
238 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_SET_FILE_INFO_NAME</tt></span></td><td> change the name
239 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_SET_FILE_INFO_PERMISSIONS</tt></span></td><td> change the permissions
240 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_SET_FILE_INFO_OWNER</tt></span></td><td> change the file's owner
241 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_SET_FILE_INFO_TIME</tt></span></td><td> change the file's time stamp(s)
242 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="GnomeVFSGetFileInfoResult"></a>GnomeVFSGetFileInfoResult</h3><pre class="programlisting">typedef struct {
244 GnomeVFSResult result;
245 GnomeVFSFileInfo *file_info;
246 } GnomeVFSGetFileInfoResult;
249 </p></div><hr><div class="refsect2" lang="en"><h3><a name="GnomeVFSInodeNumber"></a>GnomeVFSInodeNumber</h3><pre class="programlisting">typedef GnomeVFSFileSize GnomeVFSInodeNumber;
251 Represents the i-node of a file, this is a low level data structure
252 that the operating system uses to hold information about a file.</p><p>
254 </p></div><hr><div class="refsect2" lang="en"><h3><a name="GnomeVFSFileInfo"></a>GnomeVFSFileInfo</h3><pre class="programlisting">typedef struct {
255 /* Base name of the file (no path). */
258 /* Fields which are actually valid in this structure. */
259 GnomeVFSFileInfoFields valid_fields;
261 /* File type (i.e. regular, directory, block device...). */
262 GnomeVFSFileType type;
264 /* File permissions. */
265 GnomeVFSFilePermissions permissions;
267 /* Flags for this file. */
268 GnomeVFSFileFlags flags;
270 /* These are only valid if `is_local' is TRUE (see below). */
272 GnomeVFSInodeNumber inode;
282 GnomeVFSFileSize size;
284 /* Size measured in units of 512-byte blocks. */
285 GnomeVFSFileSize block_count;
287 /* Optimal buffer size for reading/writing the file. */
290 /* Access, modification and change times. */
295 /* If the file is a symlink (see `flags'), this specifies the file the
304 /* Reserved for future expansions to GnomeVFSFileInfo without having
305 to break ABI compatibility */
313 The GnomeVFSFileInfo structure contains information about a file.</p><p>
315 </p></div><hr><div class="refsect2" lang="en"><h3><a name="GNOME-VFS-FILE-INFO-SYMLINK-CAPS"></a>GNOME_VFS_FILE_INFO_SYMLINK()</h3><pre class="programlisting">#define GNOME_VFS_FILE_INFO_SYMLINK(info)</pre><p>
316 Determines whether a file is a symbolic link given <i class="parameter"><tt>info</tt></i>.</p><p>
318 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>info</tt></i> :</span></td><td> GnomeVFSFileInfo struct
319 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="GNOME-VFS-FILE-INFO-SET-SYMLINK-CAPS"></a>GNOME_VFS_FILE_INFO_SET_SYMLINK()</h3><pre class="programlisting">#define GNOME_VFS_FILE_INFO_SET_SYMLINK(info, value)</pre><p>
320 Set the symbolic link field in <i class="parameter"><tt>info</tt></i> to <i class="parameter"><tt>value</tt></i>.</p><p>
322 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>info</tt></i> :</span></td><td> GnomeVFSFileInfo struct
323 </td></tr><tr><td><span class="term"><i class="parameter"><tt>value</tt></i> :</span></td><td> if <tt class="literal">TRUE</tt>, <i class="parameter"><tt>info</tt></i> is set to indicate the file is a symbolic link
324 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="GNOME-VFS-FILE-INFO-LOCAL-CAPS"></a>GNOME_VFS_FILE_INFO_LOCAL()</h3><pre class="programlisting">#define GNOME_VFS_FILE_INFO_LOCAL(info)</pre><p>
325 Determines whether a file is local given <i class="parameter"><tt>info</tt></i>.</p><p>
327 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>info</tt></i> :</span></td><td> GnomeVFSFileInfo struct
328 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="GNOME-VFS-FILE-INFO-SET-LOCAL-CAPS"></a>GNOME_VFS_FILE_INFO_SET_LOCAL()</h3><pre class="programlisting">#define GNOME_VFS_FILE_INFO_SET_LOCAL(info, value)</pre><p>
329 Set the "local file" field in <i class="parameter"><tt>info</tt></i> to <i class="parameter"><tt>value</tt></i>.</p><p>
331 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>info</tt></i> :</span></td><td> GnomeVFSFileInfo struct
332 </td></tr><tr><td><span class="term"><i class="parameter"><tt>value</tt></i> :</span></td><td> if <tt class="literal">TRUE</tt>, <i class="parameter"><tt>info</tt></i> is set to indicate the file is local
333 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="GNOME-VFS-FILE-INFO-SUID-CAPS"></a>GNOME_VFS_FILE_INFO_SUID()</h3><pre class="programlisting">#define GNOME_VFS_FILE_INFO_SUID(info)</pre><p>
334 Determines whether a file belongs to the super user.</p><p>
336 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>info</tt></i> :</span></td><td> GnomeVFSFileInfo struct
337 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="GNOME-VFS-FILE-INFO-SGID-CAPS"></a>GNOME_VFS_FILE_INFO_SGID()</h3><pre class="programlisting">#define GNOME_VFS_FILE_INFO_SGID(info)</pre><p>
338 Determines whether a file belongs to the super user's group.</p><p>
340 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>info</tt></i> :</span></td><td> GnomeVFSFileInfo struct
341 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="GNOME-VFS-FILE-INFO-STICKY-CAPS"></a>GNOME_VFS_FILE_INFO_STICKY()</h3><pre class="programlisting">#define GNOME_VFS_FILE_INFO_STICKY(info)</pre><p>
342 Determines whether a file has the sticky bit set, given <i class="parameter"><tt>info</tt></i></p><p>
344 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>info</tt></i> :</span></td><td> GnomeVFSFileInfo struct
345 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="GNOME-VFS-FILE-INFO-SET-SUID-CAPS"></a>GNOME_VFS_FILE_INFO_SET_SUID()</h3><pre class="programlisting">#define GNOME_VFS_FILE_INFO_SET_SUID(info, value)</pre><p>
346 Set the SUID field in <i class="parameter"><tt>info</tt></i> to <i class="parameter"><tt>value</tt></i>.</p><p>
348 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>info</tt></i> :</span></td><td> GnomeVFSFileInfo struct
349 </td></tr><tr><td><span class="term"><i class="parameter"><tt>value</tt></i> :</span></td><td> if <tt class="literal">TRUE</tt>, <i class="parameter"><tt>info</tt></i> is set to indicate the file belongs to the super user
350 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="GNOME-VFS-FILE-INFO-SET-SGID-CAPS"></a>GNOME_VFS_FILE_INFO_SET_SGID()</h3><pre class="programlisting">#define GNOME_VFS_FILE_INFO_SET_SGID(info, value)</pre><p>
351 Set the SGID field in <i class="parameter"><tt>info</tt></i> to <i class="parameter"><tt>value</tt></i>.</p><p>
353 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>info</tt></i> :</span></td><td> GnomeVFSFileInfo struct
354 </td></tr><tr><td><span class="term"><i class="parameter"><tt>value</tt></i> :</span></td><td> if <tt class="literal">TRUE</tt>, <i class="parameter"><tt>info</tt></i> is set to indicate the file belongs to the super user's group
355 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="GNOME-VFS-FILE-INFO-SET-STICKY-CAPS"></a>GNOME_VFS_FILE_INFO_SET_STICKY()</h3><pre class="programlisting">#define GNOME_VFS_FILE_INFO_SET_STICKY(info, value)</pre><p>
356 Set the sticky bit in <i class="parameter"><tt>info</tt></i> to <i class="parameter"><tt>value</tt></i>.</p><p>
358 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>info</tt></i> :</span></td><td> GnomeVFSFileInfo struct
359 </td></tr><tr><td><span class="term"><i class="parameter"><tt>value</tt></i> :</span></td><td> if <tt class="literal">TRUE</tt>, <i class="parameter"><tt>info</tt></i> is set to indicate the file has the sticky bit set
360 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="gnome-vfs-file-info-new"></a>gnome_vfs_file_info_new ()</h3><pre class="programlisting"><a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a>* gnome_vfs_file_info_new (void);</pre><p>
361 Allocate and initialize a new file information struct.</p><p>
363 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> A pointer to the new file information struct.
364 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="gnome-vfs-file-info-unref"></a>gnome_vfs_file_info_unref ()</h3><pre class="programlisting">void gnome_vfs_file_info_unref (<a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *info);</pre><p>
365 Destroy <i class="parameter"><tt>info</tt></i></p><p>
367 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>info</tt></i> :</span></td><td> Pointer to a file information struct
368 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="gnome-vfs-file-info-ref"></a>gnome_vfs_file_info_ref ()</h3><pre class="programlisting">void gnome_vfs_file_info_ref (<a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *info);</pre><p>
369 Increment reference count</p><p>
371 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>info</tt></i> :</span></td><td> Pointer to a file information struct
372 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="gnome-vfs-file-info-clear"></a>gnome_vfs_file_info_clear ()</h3><pre class="programlisting">void gnome_vfs_file_info_clear (<a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *info);</pre><p>
373 Clear <i class="parameter"><tt>info</tt></i> so that it's ready to accept new data. This is
374 supposed to be used when <i class="parameter"><tt>info</tt></i> already contains meaningful information which
375 we want to replace.</p><p>
377 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>info</tt></i> :</span></td><td> Pointer to a file information struct
378 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="gnome-vfs-file-info-get-mime-type"></a>gnome_vfs_file_info_get_mime_type ()</h3><pre class="programlisting">const char* gnome_vfs_file_info_get_mime_type
379 (<a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *info);</pre><p>
380 Retrieve MIME type from <i class="parameter"><tt>info</tt></i>. There is no need to free the return
383 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>info</tt></i> :</span></td><td> A pointer to a file information struct
384 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> A pointer to a string representing the MIME type.
385 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="gnome-vfs-file-info-copy"></a>gnome_vfs_file_info_copy ()</h3><pre class="programlisting">void gnome_vfs_file_info_copy (<a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *dest,
386 const <a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *src);</pre><p>
387 Copy information from <i class="parameter"><tt>src</tt></i> into <i class="parameter"><tt>dest</tt></i>.</p><p>
389 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>dest</tt></i> :</span></td><td> Pointer to a struct to copy <i class="parameter"><tt>src</tt></i>'s information into
390 </td></tr><tr><td><span class="term"><i class="parameter"><tt>src</tt></i> :</span></td><td> Pointer to the information to be copied into <i class="parameter"><tt>dest</tt></i>
391 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="gnome-vfs-file-info-dup"></a>gnome_vfs_file_info_dup ()</h3><pre class="programlisting"><a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a>* gnome_vfs_file_info_dup (const <a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *orig);</pre><p>
392 Duplicates <i class="parameter"><tt>orig</tt></i> and returns it.</p><p>
394 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>orig</tt></i> :</span></td><td> Pointer to a file information structure to duplicate
395 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> a new file information struct that duplicates the information in <i class="parameter"><tt>orig</tt></i>.
396 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="gnome-vfs-file-info-matches"></a>gnome_vfs_file_info_matches ()</h3><pre class="programlisting"><a
397 href="../glib/glib-Basic-Types.html#gboolean"
398 >gboolean</a> gnome_vfs_file_info_matches (const <a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *a,
399 const <a href="gnome-vfs-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *b);</pre><p>
400 Compare the two file info structs, return TRUE if they match.</p><p>
402 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>a</tt></i> :</span></td><td> first GnomeVFSFileInfo struct to compare
403 </td></tr><tr><td><span class="term"><i class="parameter"><tt>b</tt></i> :</span></td><td> second GnomeVFSFileInfo struct to compare
404 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> TRUE if the two GnomeVFSFileInfos match, otherwise return FALSE.
405 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="gnome-vfs-file-info-list-ref"></a>gnome_vfs_file_info_list_ref ()</h3><pre class="programlisting"><a
406 href="../glib/glib-Doubly-Linked-Lists.html#GList"
407 >GList</a>* gnome_vfs_file_info_list_ref (<a
408 href="../glib/glib-Doubly-Linked-Lists.html#GList"
409 >GList</a> *list);</pre><p>
410 Increments the reference count of the items in <i class="parameter"><tt>list</tt></i> by one.</p><p>
412 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>list</tt></i> :</span></td><td> list of GnomeVFSFileInfo elements
413 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> <i class="parameter"><tt>list</tt></i>
414 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="gnome-vfs-file-info-list-unref"></a>gnome_vfs_file_info_list_unref ()</h3><pre class="programlisting"><a
415 href="../glib/glib-Doubly-Linked-Lists.html#GList"
416 >GList</a>* gnome_vfs_file_info_list_unref (<a
417 href="../glib/glib-Doubly-Linked-Lists.html#GList"
418 >GList</a> *list);</pre><p>
419 Decrements the reference count of the items in <i class="parameter"><tt>list</tt></i> by one.
420 Note that the list is *not freed* even if each member of the list
423 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>list</tt></i> :</span></td><td> list of GnomeVFSFileInfo elements
424 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> <i class="parameter"><tt>list</tt></i>
425 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="gnome-vfs-file-info-list-copy"></a>gnome_vfs_file_info_list_copy ()</h3><pre class="programlisting"><a
426 href="../glib/glib-Doubly-Linked-Lists.html#GList"
427 >GList</a>* gnome_vfs_file_info_list_copy (<a
428 href="../glib/glib-Doubly-Linked-Lists.html#GList"
429 >GList</a> *list);</pre><p>
430 Creates a duplicate of <i class="parameter"><tt>list</tt></i>, and references each member of
433 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>list</tt></i> :</span></td><td> list of GnomeVFSFileInfo elements
434 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> a newly referenced duplicate of <i class="parameter"><tt>list</tt></i>
435 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="gnome-vfs-file-info-list-free"></a>gnome_vfs_file_info_list_free ()</h3><pre class="programlisting">void gnome_vfs_file_info_list_free (<a
436 href="../glib/glib-Doubly-Linked-Lists.html#GList"
437 >GList</a> *list);</pre><p>
438 Decrements the reference count of each member of <i class="parameter"><tt>list</tt></i> by one,
439 and frees the list itself.</p><p>
441 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>list</tt></i> :</span></td><td> list of GnomeVFSFileInfo elements
442 </td></tr></tbody></table></div></div></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="data-types.html"><b><< Data Types</b></a></td><td align="right"><a accesskey="n" href="gnome-vfs-gnome-vfs-file-size.html"><b>
443 GnomeVFSFileSize >></b></a></td></tr></table></body></html>