1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>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">
2 .synopsis, .classsynopsis {
4 border: solid 1px #aaaaaa;
9 border: solid 1px #aaaaff;
18 border: solid 1px #ffaaaa;
25 .navigation a:visited {
31 </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-20-gnome-vfs-file-size.html" title="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-20-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-20-gnome-vfs-file-info"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2><span class="refentrytitle">GnomeVFSFileInfo</span></h2><p>GnomeVFSFileInfo —
32 stores information about files, GnomeVFS equivalent of stat</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
36 enum <a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileFlags">GnomeVFSFileFlags</a>;
37 enum <a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileType">GnomeVFSFileType</a>;
38 enum <a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfoFields">GnomeVFSFileInfoFields</a>;
39 enum <a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFilePermissions">GnomeVFSFilePermissions</a>;
40 enum <a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfoOptions">GnomeVFSFileInfoOptions</a>;
41 enum <a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSSetFileInfoMask">GnomeVFSSetFileInfoMask</a>;
42 typedef <a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSGetFileInfoResult">GnomeVFSGetFileInfoResult</a>;
43 typedef <a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSInodeNumber">GnomeVFSInodeNumber</a>;
44 typedef <a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a>;
45 #define <a href="gnome-vfs-20-gnome-vfs-file-info.html#GNOME-VFS-FILE-INFO-SYMLINK-CAPS">GNOME_VFS_FILE_INFO_SYMLINK</a> (info)
46 #define <a href="gnome-vfs-20-gnome-vfs-file-info.html#GNOME-VFS-FILE-INFO-SET-SYMLINK-CAPS">GNOME_VFS_FILE_INFO_SET_SYMLINK</a> (info, value)
47 #define <a href="gnome-vfs-20-gnome-vfs-file-info.html#GNOME-VFS-FILE-INFO-LOCAL-CAPS">GNOME_VFS_FILE_INFO_LOCAL</a> (info)
48 #define <a href="gnome-vfs-20-gnome-vfs-file-info.html#GNOME-VFS-FILE-INFO-SET-LOCAL-CAPS">GNOME_VFS_FILE_INFO_SET_LOCAL</a> (info, value)
49 #define <a href="gnome-vfs-20-gnome-vfs-file-info.html#GNOME-VFS-FILE-INFO-SUID-CAPS">GNOME_VFS_FILE_INFO_SUID</a> (info)
50 #define <a href="gnome-vfs-20-gnome-vfs-file-info.html#GNOME-VFS-FILE-INFO-SGID-CAPS">GNOME_VFS_FILE_INFO_SGID</a> (info)
51 #define <a href="gnome-vfs-20-gnome-vfs-file-info.html#GNOME-VFS-FILE-INFO-STICKY-CAPS">GNOME_VFS_FILE_INFO_STICKY</a> (info)
52 #define <a href="gnome-vfs-20-gnome-vfs-file-info.html#GNOME-VFS-FILE-INFO-SET-SUID-CAPS">GNOME_VFS_FILE_INFO_SET_SUID</a> (info, value)
53 #define <a href="gnome-vfs-20-gnome-vfs-file-info.html#GNOME-VFS-FILE-INFO-SET-SGID-CAPS">GNOME_VFS_FILE_INFO_SET_SGID</a> (info, value)
54 #define <a href="gnome-vfs-20-gnome-vfs-file-info.html#GNOME-VFS-FILE-INFO-SET-STICKY-CAPS">GNOME_VFS_FILE_INFO_SET_STICKY</a> (info, value)
55 <a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a>* <a href="gnome-vfs-20-gnome-vfs-file-info.html#gnome-vfs-file-info-new">gnome_vfs_file_info_new</a> (void);
56 void <a href="gnome-vfs-20-gnome-vfs-file-info.html#gnome-vfs-file-info-unref">gnome_vfs_file_info_unref</a> (<a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *info);
57 void <a href="gnome-vfs-20-gnome-vfs-file-info.html#gnome-vfs-file-info-ref">gnome_vfs_file_info_ref</a> (<a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *info);
58 void <a href="gnome-vfs-20-gnome-vfs-file-info.html#gnome-vfs-file-info-clear">gnome_vfs_file_info_clear</a> (<a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *info);
59 const char* <a href="gnome-vfs-20-gnome-vfs-file-info.html#gnome-vfs-file-info-get-mime-type">gnome_vfs_file_info_get_mime_type</a>
60 (<a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *info);
61 void <a href="gnome-vfs-20-gnome-vfs-file-info.html#gnome-vfs-file-info-copy">gnome_vfs_file_info_copy</a> (<a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *dest,
62 const <a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *src);
63 <a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a>* <a href="gnome-vfs-20-gnome-vfs-file-info.html#gnome-vfs-file-info-dup">gnome_vfs_file_info_dup</a> (const <a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *orig);
65 href="../glib/glib-Basic-Types.html#gboolean"
66 >gboolean</a> <a href="gnome-vfs-20-gnome-vfs-file-info.html#gnome-vfs-file-info-matches">gnome_vfs_file_info_matches</a> (const <a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *a,
67 const <a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *b);
69 href="../glib/glib-Doubly-Linked-Lists.html#GList"
70 >GList</a>* <a href="gnome-vfs-20-gnome-vfs-file-info.html#gnome-vfs-file-info-list-ref">gnome_vfs_file_info_list_ref</a> (<a
71 href="../glib/glib-Doubly-Linked-Lists.html#GList"
74 href="../glib/glib-Doubly-Linked-Lists.html#GList"
75 >GList</a>* <a href="gnome-vfs-20-gnome-vfs-file-info.html#gnome-vfs-file-info-list-unref">gnome_vfs_file_info_list_unref</a> (<a
76 href="../glib/glib-Doubly-Linked-Lists.html#GList"
79 href="../glib/glib-Doubly-Linked-Lists.html#GList"
80 >GList</a>* <a href="gnome-vfs-20-gnome-vfs-file-info.html#gnome-vfs-file-info-list-copy">gnome_vfs_file_info_list_copy</a> (<a
81 href="../glib/glib-Doubly-Linked-Lists.html#GList"
83 void <a href="gnome-vfs-20-gnome-vfs-file-info.html#gnome-vfs-file-info-list-free">gnome_vfs_file_info_list_free</a> (<a
84 href="../glib/glib-Doubly-Linked-Lists.html#GList"
86 </pre></div><div class="refsect1" lang="en"><h2>Description</h2><p>
88 </p></div><div class="refsect1" lang="en"><h2>Details</h2><div class="refsect2" lang="en"><h3><a name="GnomeVFSFileFlags"></a>enum GnomeVFSFileFlags</h3><a class="indexterm" name="id2928010"></a><pre class="programlisting">typedef enum {
89 GNOME_VFS_FILE_FLAGS_NONE = 0,
90 GNOME_VFS_FILE_FLAGS_SYMLINK = 1 << 0,
91 GNOME_VFS_FILE_FLAGS_LOCAL = 1 << 1
94 Packed boolean bitfield representing special
95 flags a <a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo"><span class="type">GnomeVFSFileInfo</span></a> struct can have.</p><p>
97 </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
98 </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.
99 </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
100 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="GnomeVFSFileType"></a>enum GnomeVFSFileType</h3><a class="indexterm" name="id2928120"></a><pre class="programlisting">typedef enum {
101 GNOME_VFS_FILE_TYPE_UNKNOWN,
102 GNOME_VFS_FILE_TYPE_REGULAR,
103 GNOME_VFS_FILE_TYPE_DIRECTORY,
104 GNOME_VFS_FILE_TYPE_FIFO,
105 GNOME_VFS_FILE_TYPE_SOCKET,
106 GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE,
107 GNOME_VFS_FILE_TYPE_BLOCK_DEVICE,
108 GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK
111 Identifies the kind of file represented by a <a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo"><span class="type">GnomeVFSFileInfo</span></a> struct. (note,
112 use of MIME types is preferred as this field may eventually disappear)</p><p>
114 </p></div><hr><div class="refsect2" lang="en"><h3><a name="GnomeVFSFileInfoFields"></a>enum GnomeVFSFileInfoFields</h3><a class="indexterm" name="id2928173"></a><pre class="programlisting">typedef enum {
115 GNOME_VFS_FILE_INFO_FIELDS_NONE = 0,
116 GNOME_VFS_FILE_INFO_FIELDS_TYPE = 1 << 0,
117 GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS = 1 << 1,
118 GNOME_VFS_FILE_INFO_FIELDS_FLAGS = 1 << 2,
119 GNOME_VFS_FILE_INFO_FIELDS_DEVICE = 1 << 3,
120 GNOME_VFS_FILE_INFO_FIELDS_INODE = 1 << 4,
121 GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT = 1 << 5,
122 GNOME_VFS_FILE_INFO_FIELDS_SIZE = 1 << 6,
123 GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT = 1 << 7,
124 GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE = 1 << 8,
125 GNOME_VFS_FILE_INFO_FIELDS_ATIME = 1 << 9,
126 GNOME_VFS_FILE_INFO_FIELDS_MTIME = 1 << 10,
127 GNOME_VFS_FILE_INFO_FIELDS_CTIME = 1 << 11,
128 GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME = 1 << 12,
129 GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE = 1 << 13,
130 GNOME_VFS_FILE_INFO_FIELDS_ACCESS = 1 << 14
131 } GnomeVFSFileInfoFields;
133 Flags indicating what fields in a GnomeVFSFileInfo struct are valid.
134 Name is always assumed valid (how else would you have gotten a
135 FileInfo struct otherwise?)</p><p>
137 </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
138 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_TYPE</tt></span></td><td> Type field is valid
139 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS</tt></span></td><td> Permissions field is valid
140 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_FLAGS</tt></span></td><td> Flags field is valid
141 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_DEVICE</tt></span></td><td> Device field is valid
142 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_INODE</tt></span></td><td> Inode field is valid
143 </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
144 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FIELDS_SIZE</tt></span></td><td> Size field is valid
145 </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
146 </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
147 </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
148 </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
149 </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
150 </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
151 </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
152 </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
154 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="GnomeVFSFilePermissions"></a>enum GnomeVFSFilePermissions</h3><a class="indexterm" name="id2928540"></a><pre class="programlisting">typedef enum {
155 GNOME_VFS_PERM_SUID = S_ISUID,
156 GNOME_VFS_PERM_SGID = S_ISGID,
157 GNOME_VFS_PERM_STICKY = 01000, /* S_ISVTX not defined on all systems */
158 GNOME_VFS_PERM_USER_READ = S_IRUSR,
159 GNOME_VFS_PERM_USER_WRITE = S_IWUSR,
160 GNOME_VFS_PERM_USER_EXEC = S_IXUSR,
161 GNOME_VFS_PERM_USER_ALL = S_IRUSR | S_IWUSR | S_IXUSR,
162 GNOME_VFS_PERM_GROUP_READ = S_IRGRP,
163 GNOME_VFS_PERM_GROUP_WRITE = S_IWGRP,
164 GNOME_VFS_PERM_GROUP_EXEC = S_IXGRP,
165 GNOME_VFS_PERM_GROUP_ALL = S_IRGRP | S_IWGRP | S_IXGRP,
166 GNOME_VFS_PERM_OTHER_READ = S_IROTH,
167 GNOME_VFS_PERM_OTHER_WRITE = S_IWOTH,
168 GNOME_VFS_PERM_OTHER_EXEC = S_IXOTH,
169 GNOME_VFS_PERM_OTHER_ALL = S_IROTH | S_IWOTH | S_IXOTH,
170 GNOME_VFS_PERM_ACCESS_READABLE = 1 << 16,
171 GNOME_VFS_PERM_ACCESS_WRITABLE = 1 << 17,
172 GNOME_VFS_PERM_ACCESS_EXECUTABLE = 1 << 18
173 } GnomeVFSFilePermissions;
175 File permissions. These are the same as the Unix ones, but we wrap them
176 into a nicer VFS-like enum.</p><p>
178 </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
179 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_SGID</tt></span></td><td> GID bit
180 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_STICKY</tt></span></td><td> Sticky bit.
181 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_USER_READ</tt></span></td><td> Owner has read permission
182 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_USER_WRITE</tt></span></td><td> Owner has write permission
183 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_USER_EXEC</tt></span></td><td> Owner has execution permission
184 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_USER_ALL</tt></span></td><td> Owner has all permissions
185 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_GROUP_READ</tt></span></td><td> Group has read permission
186 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_GROUP_WRITE</tt></span></td><td> Group has write permission
187 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_GROUP_EXEC</tt></span></td><td> Group has execution permission
188 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_GROUP_ALL</tt></span></td><td> Group has all permissions
189 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_OTHER_READ</tt></span></td><td> Others have read permission
190 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_OTHER_WRITE</tt></span></td><td> Others have write permission
191 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_OTHER_EXEC</tt></span></td><td> Others have execution permission
192 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_OTHER_ALL</tt></span></td><td> Others have all permissions
193 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_ACCESS_READABLE</tt></span></td><td>
194 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_ACCESS_WRITABLE</tt></span></td><td>
195 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_PERM_ACCESS_EXECUTABLE</tt></span></td><td>
196 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="GnomeVFSFileInfoOptions"></a>enum GnomeVFSFileInfoOptions</h3><a class="indexterm" name="id2928946"></a><pre class="programlisting">typedef enum {
197 GNOME_VFS_FILE_INFO_DEFAULT = 0,
198 GNOME_VFS_FILE_INFO_GET_MIME_TYPE = 1 << 0,
199 GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE = 1 << 1,
200 GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE = 1 << 2,
201 GNOME_VFS_FILE_INFO_FOLLOW_LINKS = 1 << 3,
202 GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS = 1 << 4
203 } GnomeVFSFileInfoOptions;
205 Packed boolean bitfield representing options that can
206 be passed into a <a href="gnome-vfs-20-gnome-vfs-file-info-ops.html#gnome-vfs-get-file-info"><tt class="function">gnome_vfs_get_file_info()</tt></a> call (or other
207 related calls that return file info) and affect the operation
208 of get_file_info.</p><p>
210 </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
211 </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
212 </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
213 detection (extensions)
214 </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
215 detection where available (sniffing, algorithmic detection, etc)
216 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_FILE_INFO_FOLLOW_LINKS</tt></span></td><td> automatically follow symbolic
217 links and retrieve the properties of their target (recommended)
218 </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
219 to what would return access(2) on a local file system (ie is the
220 file readable, writable and/or executable). Can be really slow on
222 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="GnomeVFSSetFileInfoMask"></a>enum GnomeVFSSetFileInfoMask</h3><a class="indexterm" name="id2929130"></a><pre class="programlisting">typedef enum {
223 GNOME_VFS_SET_FILE_INFO_NONE = 0,
224 GNOME_VFS_SET_FILE_INFO_NAME = 1 << 0,
225 GNOME_VFS_SET_FILE_INFO_PERMISSIONS = 1 << 1,
226 GNOME_VFS_SET_FILE_INFO_OWNER = 1 << 2,
227 GNOME_VFS_SET_FILE_INFO_TIME = 1 << 3
228 } GnomeVFSSetFileInfoMask;
230 Packed boolean bitfield representing the aspects of the file
231 to be changed in a <a href="gnome-vfs-20-gnome-vfs-file-info-ops.html#gnome-vfs-set-file-info"><tt class="function">gnome_vfs_set_file_info()</tt></a> call.</p><p>
233 </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
234 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_SET_FILE_INFO_NAME</tt></span></td><td> change the name
235 </td></tr><tr><td><span class="term"><tt class="literal">GNOME_VFS_SET_FILE_INFO_PERMISSIONS</tt></span></td><td> change the permissions
236 </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
237 </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)
238 </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="GnomeVFSGetFileInfoResult"></a>GnomeVFSGetFileInfoResult</h3><a class="indexterm" name="id2929288"></a><pre class="programlisting">typedef struct {
240 GnomeVFSResult result;
241 GnomeVFSFileInfo *file_info;
242 } GnomeVFSGetFileInfoResult;
245 </p></div><hr><div class="refsect2" lang="en"><h3><a name="GnomeVFSInodeNumber"></a>GnomeVFSInodeNumber</h3><a class="indexterm" name="id2929321"></a><pre class="programlisting">typedef GnomeVFSFileSize GnomeVFSInodeNumber;
247 Represents the i-node of a file, this is a low level data structure
248 that the operating system uses to hold information about a file.</p><p>
250 </p></div><hr><div class="refsect2" lang="en"><h3><a name="GnomeVFSFileInfo"></a>GnomeVFSFileInfo</h3><a class="indexterm" name="id2929361"></a><pre class="programlisting">typedef struct {
251 /* Base name of the file (no path). */
254 /* Fields which are actually valid in this structure. */
255 GnomeVFSFileInfoFields valid_fields;
257 /* File type (i.e. regular, directory, block device...). */
258 GnomeVFSFileType type;
260 /* File permissions. */
261 GnomeVFSFilePermissions permissions;
263 /* Flags for this file. */
264 GnomeVFSFileFlags flags;
266 /* These are only valid if `is_local' is TRUE (see below). */
268 GnomeVFSInodeNumber inode;
278 GnomeVFSFileSize size;
280 /* Size measured in units of 512-byte blocks. */
281 GnomeVFSFileSize block_count;
283 /* Optimal buffer size for reading/writing the file. */
286 /* Access, modification and change times. */
291 /* If the file is a symlink (see `flags'), this specifies the file the
300 /* Reserved for future expansions to GnomeVFSFileInfo without having
301 to break ABI compatibility */
309 The GnomeVFSFileInfo structure contains information about a file.</p><p>
311 </p></div><hr><div class="refsect2" lang="en"><h3><a name="GNOME-VFS-FILE-INFO-SYMLINK-CAPS"></a>GNOME_VFS_FILE_INFO_SYMLINK()</h3><a class="indexterm" name="id2929447"></a><pre class="programlisting">#define GNOME_VFS_FILE_INFO_SYMLINK(info)</pre><p>
312 Determines whether a file is a symbolic link given <i class="parameter"><tt>info</tt></i>.</p><p>
314 </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
315 </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><a class="indexterm" name="id2929517"></a><pre class="programlisting">#define GNOME_VFS_FILE_INFO_SET_SYMLINK(info, value)</pre><p>
316 Set the symbolic link field in <i class="parameter"><tt>info</tt></i> to <i class="parameter"><tt>value</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><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
320 </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><a class="indexterm" name="id2929622"></a><pre class="programlisting">#define GNOME_VFS_FILE_INFO_LOCAL(info)</pre><p>
321 Determines whether a file is local given <i class="parameter"><tt>info</tt></i>.</p><p>
323 </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
324 </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><a class="indexterm" name="id2929689"></a><pre class="programlisting">#define GNOME_VFS_FILE_INFO_SET_LOCAL(info, value)</pre><p>
325 Set the "local file" field in <i class="parameter"><tt>info</tt></i> to <i class="parameter"><tt>value</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><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
329 </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><a class="indexterm" name="id2929794"></a><pre class="programlisting">#define GNOME_VFS_FILE_INFO_SUID(info)</pre><p>
330 Determines whether a file belongs to the super user.</p><p>
332 </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
333 </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><a class="indexterm" name="id2929854"></a><pre class="programlisting">#define GNOME_VFS_FILE_INFO_SGID(info)</pre><p>
334 Determines whether a file belongs to the super user's group.</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-STICKY-CAPS"></a>GNOME_VFS_FILE_INFO_STICKY()</h3><a class="indexterm" name="id2929914"></a><pre class="programlisting">#define GNOME_VFS_FILE_INFO_STICKY(info)</pre><p>
338 Determines whether a file has the sticky bit set, given <i class="parameter"><tt>info</tt></i></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-SET-SUID-CAPS"></a>GNOME_VFS_FILE_INFO_SET_SUID()</h3><a class="indexterm" name="id2929981"></a><pre class="programlisting">#define GNOME_VFS_FILE_INFO_SET_SUID(info, value)</pre><p>
342 Set the SUID field in <i class="parameter"><tt>info</tt></i> to <i class="parameter"><tt>value</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><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
346 </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><a class="indexterm" name="id2930087"></a><pre class="programlisting">#define GNOME_VFS_FILE_INFO_SET_SGID(info, value)</pre><p>
347 Set the SGID field in <i class="parameter"><tt>info</tt></i> to <i class="parameter"><tt>value</tt></i>.</p><p>
349 </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
350 </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
351 </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><a class="indexterm" name="id2930192"></a><pre class="programlisting">#define GNOME_VFS_FILE_INFO_SET_STICKY(info, value)</pre><p>
352 Set the sticky bit in <i class="parameter"><tt>info</tt></i> to <i class="parameter"><tt>value</tt></i>.</p><p>
354 </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
355 </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
356 </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><a class="indexterm" name="id2930297"></a><pre class="programlisting"><a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a>* gnome_vfs_file_info_new (void);</pre><p>
357 Allocate and initialize a new file information struct.</p><p>
359 </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.
360 </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><a class="indexterm" name="id2930362"></a><pre class="programlisting">void gnome_vfs_file_info_unref (<a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *info);</pre><p>
361 Destroy <i class="parameter"><tt>info</tt></i></p><p>
363 </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
364 </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><a class="indexterm" name="id2930441"></a><pre class="programlisting">void gnome_vfs_file_info_ref (<a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *info);</pre><p>
365 Increment reference count</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-clear"></a>gnome_vfs_file_info_clear ()</h3><a class="indexterm" name="id2930516"></a><pre class="programlisting">void gnome_vfs_file_info_clear (<a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *info);</pre><p>
369 Clear <i class="parameter"><tt>info</tt></i> so that it's ready to accept new data. This is
370 supposed to be used when <i class="parameter"><tt>info</tt></i> already contains meaningful information which
371 we want to replace.</p><p>
373 </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
374 </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><a class="indexterm" name="id2930607"></a><pre class="programlisting">const char* gnome_vfs_file_info_get_mime_type
375 (<a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *info);</pre><p>
376 Retrieve MIME type from <i class="parameter"><tt>info</tt></i>. There is no need to free the return
379 </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
380 </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.
381 </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><a class="indexterm" name="id2930705"></a><pre class="programlisting">void gnome_vfs_file_info_copy (<a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *dest,
382 const <a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *src);</pre><p>
383 Copy information from <i class="parameter"><tt>src</tt></i> into <i class="parameter"><tt>dest</tt></i>.</p><p>
385 </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
386 </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>
387 </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><a class="indexterm" name="id2930834"></a><pre class="programlisting"><a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a>* gnome_vfs_file_info_dup (const <a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *orig);</pre><p>
388 Duplicates <i class="parameter"><tt>orig</tt></i> and returns it.</p><p>
390 </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
391 </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>.
392 </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><a class="indexterm" name="id2930937"></a><pre class="programlisting"><a
393 href="../glib/glib-Basic-Types.html#gboolean"
394 >gboolean</a> gnome_vfs_file_info_matches (const <a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *a,
395 const <a href="gnome-vfs-20-gnome-vfs-file-info.html#GnomeVFSFileInfo">GnomeVFSFileInfo</a> *b);</pre><p>
396 Compare the two file info structs, return TRUE if they match.</p><p>
398 </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
399 </td></tr><tr><td><span class="term"><i class="parameter"><tt>b</tt></i> :</span></td><td> second GnomeVFSFileInfo struct to compare
400 </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.
401 </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><a class="indexterm" name="id2931053"></a><pre class="programlisting"><a
402 href="../glib/glib-Doubly-Linked-Lists.html#GList"
403 >GList</a>* gnome_vfs_file_info_list_ref (<a
404 href="../glib/glib-Doubly-Linked-Lists.html#GList"
405 >GList</a> *list);</pre><p>
406 Increments the reference count of the items in <i class="parameter"><tt>list</tt></i> by one.</p><p>
408 </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
409 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> <i class="parameter"><tt>list</tt></i>
410 </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><a class="indexterm" name="id2931155"></a><pre class="programlisting"><a
411 href="../glib/glib-Doubly-Linked-Lists.html#GList"
412 >GList</a>* gnome_vfs_file_info_list_unref (<a
413 href="../glib/glib-Doubly-Linked-Lists.html#GList"
414 >GList</a> *list);</pre><p>
415 Decrements the reference count of the items in <i class="parameter"><tt>list</tt></i> by one.
416 Note that the list is *not freed* even if each member of the list
419 </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
420 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> <i class="parameter"><tt>list</tt></i>
421 </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><a class="indexterm" name="id2931258"></a><pre class="programlisting"><a
422 href="../glib/glib-Doubly-Linked-Lists.html#GList"
423 >GList</a>* gnome_vfs_file_info_list_copy (<a
424 href="../glib/glib-Doubly-Linked-Lists.html#GList"
425 >GList</a> *list);</pre><p>
426 Creates a duplicate of <i class="parameter"><tt>list</tt></i>, and references each member of
429 </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
430 </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>
431 </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><a class="indexterm" name="id2931360"></a><pre class="programlisting">void gnome_vfs_file_info_list_free (<a
432 href="../glib/glib-Doubly-Linked-Lists.html#GList"
433 >GList</a> *list);</pre><p>
434 Decrements the reference count of each member of <i class="parameter"><tt>list</tt></i> by one,
435 and frees the list itself.</p><p>
437 </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
438 </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-20-gnome-vfs-file-size.html"><b>GnomeVFSFileSize >></b></a></td></tr></table></body></html>