[kdbus] Add README.md file
[platform/upstream/glib.git] / gio / gfileinfo.h
1 /* GIO - GLib Input, Output and Streaming Library
2  *
3  * Copyright (C) 2006-2007 Red Hat, Inc.
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General
16  * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
17  *
18  * Author: Alexander Larsson <alexl@redhat.com>
19  */
20
21 #ifndef __G_FILE_INFO_H__
22 #define __G_FILE_INFO_H__
23
24 #if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION)
25 #error "Only <gio/gio.h> can be included directly."
26 #endif
27
28 #include <gio/giotypes.h>
29
30 G_BEGIN_DECLS
31
32 #define G_TYPE_FILE_INFO         (g_file_info_get_type ())
33 #define G_FILE_INFO(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_FILE_INFO, GFileInfo))
34 #define G_FILE_INFO_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_FILE_INFO, GFileInfoClass))
35 #define G_IS_FILE_INFO(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_FILE_INFO))
36 #define G_IS_FILE_INFO_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_FILE_INFO))
37 #define G_FILE_INFO_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_FILE_INFO, GFileInfoClass))
38
39 /**
40  * GFileInfo:
41  *
42  * Stores information about a file system object referenced by a #GFile.
43  **/
44 typedef struct _GFileInfoClass   GFileInfoClass;
45
46
47 /* Common Attributes:  */
48 /**
49  * G_FILE_ATTRIBUTE_STANDARD_TYPE:
50  *
51  * A key in the "standard" namespace for storing file types.
52  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
53  * The value for this key should contain a #GFileType.
54  **/
55 #define G_FILE_ATTRIBUTE_STANDARD_TYPE "standard::type"                     /* uint32 (GFileType) */
56
57 /**
58  * G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN:
59  *
60  * A key in the "standard" namespace for checking if a file is hidden.
61  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
62  **/
63 #define G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN "standard::is-hidden"           /* boolean */
64
65 /**
66  * G_FILE_ATTRIBUTE_STANDARD_IS_BACKUP:
67  *
68  * A key in the "standard" namespace for checking if a file is a backup file.
69  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
70  **/
71 #define G_FILE_ATTRIBUTE_STANDARD_IS_BACKUP "standard::is-backup"           /* boolean */
72
73 /**
74  * G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK:
75  *
76  * A key in the "standard" namespace for checking if the file is a symlink.
77  * Typically the actual type is something else, if we followed the symlink
78  * to get the type.
79  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
80  **/
81 #define G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK "standard::is-symlink"         /* boolean */
82
83 /**
84  * G_FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL:
85  *
86  * A key in the "standard" namespace for checking if a file is virtual.
87  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
88  **/
89 #define G_FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL "standard::is-virtual"         /* boolean */
90
91 /**
92  * G_FILE_ATTRIBUTE_STANDARD_NAME:
93  *
94  * A key in the "standard" namespace for getting the name of the file.
95  * The name is the on-disk filename which may not be in any known encoding,
96  * and can thus not be generally displayed as is.
97  * Use #G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME if you need to display the
98  * name in a user interface.
99  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
100  **/
101 #define G_FILE_ATTRIBUTE_STANDARD_NAME "standard::name"                     /* byte string */
102
103 /**
104  * G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME:
105  *
106  * A key in the "standard" namespace for getting the display name of the file.
107  * A display name is guaranteed to be in UTF8 and can thus be displayed in
108  * the UI.
109  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
110  **/
111 #define G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME "standard::display-name"     /* string */
112
113 /**
114  * G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME:
115  *
116  * A key in the "standard" namespace for edit name of the file.
117  * An edit name is similar to the display name, but it is meant to be
118  * used when you want to rename the file in the UI. The display name
119  * might contain information you don't want in the new filename (such as
120  * "(invalid unicode)" if the filename was in an invalid encoding).
121  *
122  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
123  **/
124 #define G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME "standard::edit-name"           /* string */
125
126 /**
127  * G_FILE_ATTRIBUTE_STANDARD_COPY_NAME:
128  *
129  * A key in the "standard" namespace for getting the copy name of the file.
130  * The copy name is an optional version of the name. If available it's always
131  * in UTF8, and corresponds directly to the original filename (only transcoded to
132  * UTF8). This is useful if you want to copy the file to another filesystem that
133  * might have a different encoding. If the filename is not a valid string in the
134  * encoding selected for the filesystem it is in then the copy name will not be set.
135  *
136  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
137  **/
138 #define G_FILE_ATTRIBUTE_STANDARD_COPY_NAME "standard::copy-name"           /* string */
139
140 /**
141  * G_FILE_ATTRIBUTE_STANDARD_DESCRIPTION:
142  *
143  * A key in the "standard" namespace for getting the description of the file.
144  * The description is a utf8 string that describes the file, generally containing
145  * the filename, but can also contain furter information. Example descriptions
146  * could be "filename (on hostname)" for a remote file or "filename (in trash)"
147  * for a file in the trash. This is useful for instance as the window title
148  * when displaying a directory or for a bookmarks menu.
149  *
150  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
151  **/
152 #define G_FILE_ATTRIBUTE_STANDARD_DESCRIPTION "standard::description"        /* string */
153
154 /**
155  * G_FILE_ATTRIBUTE_STANDARD_ICON:
156  *
157  * A key in the "standard" namespace for getting the icon for the file.
158  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_OBJECT.
159  * The value for this key should contain a #GIcon.
160  **/
161 #define G_FILE_ATTRIBUTE_STANDARD_ICON "standard::icon"                     /* object (GIcon) */
162
163 /**
164  * G_FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON:
165  *
166  * A key in the "standard" namespace for getting the symbolic icon for the file.
167  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_OBJECT.
168  * The value for this key should contain a #GIcon.
169  *
170  * Since: 2.34
171  **/
172 #define G_FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON "standard::symbolic-icon"   /* object (GIcon) */
173
174 /**
175  * G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE:
176  *
177  * A key in the "standard" namespace for getting the content type of the file.
178  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
179  * The value for this key should contain a valid content type.
180  **/
181 #define G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE "standard::content-type"     /* string */
182
183 /**
184  * G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE:
185  *
186  * A key in the "standard" namespace for getting the fast content type.
187  * The fast content type isn't as reliable as the regular one, as it
188  * only uses the filename to guess it, but it is faster to calculate than the
189  * regular content type.
190  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
191  *
192  **/
193 #define G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE "standard::fast-content-type" /* string */
194
195 /**
196  * G_FILE_ATTRIBUTE_STANDARD_SIZE:
197  *
198  * A key in the "standard" namespace for getting the file's size (in bytes).
199  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
200  **/
201 #define G_FILE_ATTRIBUTE_STANDARD_SIZE "standard::size"                     /* uint64 */
202
203 /**
204  * G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE:
205  *
206  * A key in the "standard" namespace for getting the amount of disk space
207  * that is consumed by the file (in bytes).  This will generally be larger
208  * than the file size (due to block size overhead) but can occasionally be
209  * smaller (for example, for sparse files).
210  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
211  *
212  * Since: 2.20
213  **/
214 #define G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE "standard::allocated-size" /* uint64 */
215
216 /**
217  * G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET:
218  *
219  * A key in the "standard" namespace for getting the symlink target, if the file
220  * is a symlink. Corresponding #GFileAttributeType is
221  * %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
222  **/
223 #define G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET "standard::symlink-target" /* byte string */
224
225 /**
226  * G_FILE_ATTRIBUTE_STANDARD_TARGET_URI:
227  *
228  * A key in the "standard" namespace for getting the target URI for the file, in
229  * the case of %G_FILE_TYPE_SHORTCUT or %G_FILE_TYPE_MOUNTABLE files.
230  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
231  **/
232 #define G_FILE_ATTRIBUTE_STANDARD_TARGET_URI "standard::target-uri"         /* string */
233
234 /**
235  * G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER:
236  *
237  * A key in the "standard" namespace for setting the sort order of a file.
238  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_INT32.
239  * An example use would be in file managers, which would use this key
240  * to set the order files are displayed. Files with smaller sort order
241  * should be sorted first, and files without sort order as if sort order
242  * was zero.
243  **/
244 #define G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER "standard::sort-order"         /* int32  */
245
246 /* Entity tags, used to avoid missing updates on save */
247
248 /**
249  * G_FILE_ATTRIBUTE_ETAG_VALUE:
250  *
251  * A key in the "etag" namespace for getting the value of the file's
252  * entity tag. Corresponding #GFileAttributeType is
253  * %G_FILE_ATTRIBUTE_TYPE_STRING.
254  **/
255 #define G_FILE_ATTRIBUTE_ETAG_VALUE "etag::value"                 /* string */
256
257 /* File identifier, for e.g. avoiding loops when doing recursive
258  * directory scanning
259  */
260
261 /**
262  * G_FILE_ATTRIBUTE_ID_FILE:
263  *
264  * A key in the "id" namespace for getting a file identifier.
265  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
266  * An example use would be during listing files, to avoid recursive
267  * directory scanning.
268  **/
269 #define G_FILE_ATTRIBUTE_ID_FILE "id::file"                     /* string */
270
271 /**
272  * G_FILE_ATTRIBUTE_ID_FILESYSTEM:
273  *
274  * A key in the "id" namespace for getting the file system identifier.
275  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
276  * An example use would be during drag and drop to see if the source
277  * and target are on the same filesystem (default to move) or not (default
278  * to copy).
279  **/
280 #define G_FILE_ATTRIBUTE_ID_FILESYSTEM "id::filesystem"         /* string */
281
282 /* Calculated Access Rights for current user */
283
284 /**
285  * G_FILE_ATTRIBUTE_ACCESS_CAN_READ:
286  *
287  * A key in the "access" namespace for getting read privileges.
288  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
289  * This attribute will be %TRUE if the user is able to read the file.
290  **/
291 #define G_FILE_ATTRIBUTE_ACCESS_CAN_READ "access::can-read"       /* boolean */
292
293 /**
294  * G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE:
295  *
296  * A key in the "access" namespace for getting write privileges.
297  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
298  * This attribute will be %TRUE if the user is able to write to the file.
299  **/
300 #define G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE "access::can-write"     /* boolean */
301
302 /**
303  * G_FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE:
304  *
305  * A key in the "access" namespace for getting execution privileges.
306  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
307  * This attribute will be %TRUE if the user is able to execute the file.
308  **/
309 #define G_FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE "access::can-execute" /* boolean */
310
311 /**
312  * G_FILE_ATTRIBUTE_ACCESS_CAN_DELETE:
313  *
314  * A key in the "access" namespace for checking deletion privileges.
315  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
316  * This attribute will be %TRUE if the user is able to delete the file.
317  **/
318 #define G_FILE_ATTRIBUTE_ACCESS_CAN_DELETE "access::can-delete"   /* boolean */
319
320 /**
321  * G_FILE_ATTRIBUTE_ACCESS_CAN_TRASH:
322  *
323  * A key in the "access" namespace for checking trashing privileges.
324  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
325  * This attribute will be %TRUE if the user is able to move the file to
326  * the trash.
327  **/
328 #define G_FILE_ATTRIBUTE_ACCESS_CAN_TRASH "access::can-trash"     /* boolean */
329
330 /**
331  * G_FILE_ATTRIBUTE_ACCESS_CAN_RENAME:
332  *
333  * A key in the "access" namespace for checking renaming privileges.
334  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
335  * This attribute will be %TRUE if the user is able to rename the file.
336  **/
337 #define G_FILE_ATTRIBUTE_ACCESS_CAN_RENAME "access::can-rename"   /* boolean */
338
339 /* TODO: Should we have special version for directories? can_enumerate, etc */
340
341 /* Mountable attributes */
342
343 /**
344  * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT:
345  *
346  * A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE) is mountable.
347  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
348  **/
349 #define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT "mountable::can-mount"     /* boolean */
350
351 /**
352  * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT:
353  *
354  * A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE)  is unmountable.
355  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
356  **/
357 #define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT "mountable::can-unmount" /* boolean */
358
359 /**
360  * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT:
361  *
362  * A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE) can be ejected.
363  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
364  **/
365 #define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT "mountable::can-eject"     /* boolean */
366
367 /**
368  * G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE:
369  *
370  * A key in the "mountable" namespace for getting the unix device.
371  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
372  **/
373 #define G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE "mountable::unix-device" /* uint32 */
374
375 /**
376  * G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE:
377  *
378  * A key in the "mountable" namespace for getting the unix device file.
379  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
380  *
381  * Since: 2.22
382  **/
383 #define G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE "mountable::unix-device-file" /* string */
384
385 /**
386  * G_FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI:
387  *
388  * A key in the "mountable" namespace for getting the HAL UDI for the mountable
389  * file. Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
390  **/
391 #define G_FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI "mountable::hal-udi"         /* string */
392
393 /**
394  * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START:
395  *
396  * A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE) can be started.
397  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
398  *
399  * Since: 2.22
400  */
401 #define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START "mountable::can-start"     /* boolean */
402
403 /**
404  * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED:
405  *
406  * A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE) can be started
407  * degraded.
408  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
409  *
410  * Since: 2.22
411  */
412 #define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED "mountable::can-start-degraded"     /* boolean */
413
414 /**
415  * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP:
416  *
417  * A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE) can be stopped.
418  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
419  *
420  * Since: 2.22
421  */
422 #define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP "mountable::can-stop"      /* boolean */
423
424 /**
425  * G_FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE:
426  *
427  * A key in the "mountable" namespace for getting the #GDriveStartStopType.
428  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
429  *
430  * Since: 2.22
431  */
432 #define G_FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE "mountable::start-stop-type" /* uint32 (GDriveStartStopType) */
433
434 /**
435  * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL:
436  *
437  * A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE) can be polled.
438  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
439  *
440  * Since: 2.22
441  */
442 #define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL "mountable::can-poll"      /* boolean */
443
444 /**
445  * G_FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC:
446  *
447  * A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE)
448  * is automatically polled for media.
449  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
450  *
451  * Since: 2.22
452  */
453 #define G_FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC "mountable::is-media-check-automatic"      /* boolean */
454
455 /* Time attributes */
456
457 /**
458  * G_FILE_ATTRIBUTE_TIME_MODIFIED:
459  *
460  * A key in the "time" namespace for getting the time the file was last
461  * modified. Corresponding #GFileAttributeType is
462  * %G_FILE_ATTRIBUTE_TYPE_UINT64, and contains the UNIX time since the
463  * file was modified.
464  **/
465 #define G_FILE_ATTRIBUTE_TIME_MODIFIED "time::modified"           /* uint64 */
466
467 /**
468  * G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC:
469  *
470  * A key in the "time" namespace for getting the miliseconds of the time
471  * the file was last modified. This should be used in conjunction with
472  * #G_FILE_ATTRIBUTE_TIME_MODIFIED. Corresponding #GFileAttributeType is
473  * %G_FILE_ATTRIBUTE_TYPE_UINT32.
474  **/
475 #define G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC "time::modified-usec" /* uint32 */
476
477 /**
478  * G_FILE_ATTRIBUTE_TIME_ACCESS:
479  *
480  * A key in the "time" namespace for getting the time the file was last
481  * accessed. Corresponding #GFileAttributeType is
482  * %G_FILE_ATTRIBUTE_TYPE_UINT64, and contains the UNIX time since the
483  * file was last accessed.
484  **/
485 #define G_FILE_ATTRIBUTE_TIME_ACCESS "time::access"               /* uint64 */
486
487 /**
488  * G_FILE_ATTRIBUTE_TIME_ACCESS_USEC:
489  *
490  * A key in the "time" namespace for getting the microseconds of the time
491  * the file was last accessed. This should be used in conjunction with
492  * #G_FILE_ATTRIBUTE_TIME_ACCESS. Corresponding #GFileAttributeType is
493  * %G_FILE_ATTRIBUTE_TYPE_UINT32.
494  **/
495 #define G_FILE_ATTRIBUTE_TIME_ACCESS_USEC "time::access-usec"     /* uint32 */
496
497 /**
498  * G_FILE_ATTRIBUTE_TIME_CHANGED:
499  *
500  * A key in the "time" namespace for getting the time the file was last
501  * changed. Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64,
502  * and contains the UNIX time since the file was last changed.
503  *
504  * This corresponds to the traditional UNIX ctime.
505  **/
506 #define G_FILE_ATTRIBUTE_TIME_CHANGED "time::changed"             /* uint64 */
507
508 /**
509  * G_FILE_ATTRIBUTE_TIME_CHANGED_USEC:
510  *
511  * A key in the "time" namespace for getting the microseconds of the time
512  * the file was last changed. This should be used in conjunction with
513  * #G_FILE_ATTRIBUTE_TIME_CHANGED. Corresponding #GFileAttributeType is
514  * %G_FILE_ATTRIBUTE_TYPE_UINT32.
515  **/
516 #define G_FILE_ATTRIBUTE_TIME_CHANGED_USEC "time::changed-usec"   /* uint32 */
517
518 /**
519  * G_FILE_ATTRIBUTE_TIME_CREATED:
520  *
521  * A key in the "time" namespace for getting the time the file was created.
522  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64,
523  * and contains the UNIX time since the file was created.
524  *
525  * This corresponds to the NTFS ctime.
526  **/
527 #define G_FILE_ATTRIBUTE_TIME_CREATED "time::created"             /* uint64 */
528
529 /**
530  * G_FILE_ATTRIBUTE_TIME_CREATED_USEC:
531  *
532  * A key in the "time" namespace for getting the microseconds of the time
533  * the file was created. This should be used in conjunction with
534  * #G_FILE_ATTRIBUTE_TIME_CREATED. Corresponding #GFileAttributeType is
535  * %G_FILE_ATTRIBUTE_TYPE_UINT32.
536  **/
537 #define G_FILE_ATTRIBUTE_TIME_CREATED_USEC "time::created-usec"   /* uint32 */
538
539 /* Unix specific attributes */
540
541 /**
542  * G_FILE_ATTRIBUTE_UNIX_DEVICE:
543  *
544  * A key in the "unix" namespace for getting the device id of the device the
545  * file is located on (see stat() documentation). This attribute is only
546  * available for UNIX file systems. Corresponding #GFileAttributeType is
547  * %G_FILE_ATTRIBUTE_TYPE_UINT32.
548  **/
549 #define G_FILE_ATTRIBUTE_UNIX_DEVICE "unix::device"               /* uint32 */
550
551 /**
552  * G_FILE_ATTRIBUTE_UNIX_INODE:
553  *
554  * A key in the "unix" namespace for getting the inode of the file.
555  * This attribute is only available for UNIX file systems. Corresponding
556  * #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
557  **/
558 #define G_FILE_ATTRIBUTE_UNIX_INODE "unix::inode"                 /* uint64 */
559
560 /**
561  * G_FILE_ATTRIBUTE_UNIX_MODE:
562  *
563  * A key in the "unix" namespace for getting the mode of the file
564  * (e.g. whether the file is a regular file, symlink, etc). See lstat()
565  * documentation. This attribute is only available for UNIX file systems.
566  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
567  **/
568 #define G_FILE_ATTRIBUTE_UNIX_MODE "unix::mode"                   /* uint32 */
569
570 /**
571  * G_FILE_ATTRIBUTE_UNIX_NLINK:
572  *
573  * A key in the "unix" namespace for getting the number of hard links
574  * for a file. See lstat() documentation. This attribute is only available
575  * for UNIX file systems. Corresponding #GFileAttributeType is
576  * %G_FILE_ATTRIBUTE_TYPE_UINT32.
577  **/
578 #define G_FILE_ATTRIBUTE_UNIX_NLINK "unix::nlink"                 /* uint32 */
579
580 /**
581  * G_FILE_ATTRIBUTE_UNIX_UID:
582  *
583  * A key in the "unix" namespace for getting the user ID for the file.
584  * This attribute is only available for UNIX file systems.
585  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
586  **/
587 #define G_FILE_ATTRIBUTE_UNIX_UID "unix::uid"                     /* uint32 */
588
589 /**
590  * G_FILE_ATTRIBUTE_UNIX_GID:
591  *
592  * A key in the "unix" namespace for getting the group ID for the file.
593  * This attribute is only available for UNIX file systems.
594  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
595  **/
596 #define G_FILE_ATTRIBUTE_UNIX_GID "unix::gid"                     /* uint32 */
597
598 /**
599  * G_FILE_ATTRIBUTE_UNIX_RDEV:
600  *
601  * A key in the "unix" namespace for getting the device ID for the file
602  * (if it is a special file). See lstat() documentation. This attribute
603  * is only available for UNIX file systems. Corresponding #GFileAttributeType
604  * is %G_FILE_ATTRIBUTE_TYPE_UINT32.
605  **/
606 #define G_FILE_ATTRIBUTE_UNIX_RDEV "unix::rdev"                   /* uint32 */
607
608 /**
609  * G_FILE_ATTRIBUTE_UNIX_BLOCK_SIZE:
610  *
611  * A key in the "unix" namespace for getting the block size for the file
612  * system. This attribute is only available for UNIX file systems.
613  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
614  **/
615 #define G_FILE_ATTRIBUTE_UNIX_BLOCK_SIZE "unix::block-size"       /* uint32 */
616
617 /**
618  * G_FILE_ATTRIBUTE_UNIX_BLOCKS:
619  *
620  * A key in the "unix" namespace for getting the number of blocks allocated
621  * for the file. This attribute is only available for UNIX file systems.
622  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
623  **/
624 #define G_FILE_ATTRIBUTE_UNIX_BLOCKS "unix::blocks"               /* uint64 */
625
626 /**
627  * G_FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT:
628  *
629  * A key in the "unix" namespace for checking if the file represents a
630  * UNIX mount point. This attribute is %TRUE if the file is a UNIX mount
631  * point. This attribute is only available for UNIX file systems.
632  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
633  **/
634 #define G_FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT "unix::is-mountpoint" /* boolean */
635
636 /* DOS specific attributes */
637
638 /**
639  * G_FILE_ATTRIBUTE_DOS_IS_ARCHIVE:
640  *
641  * A key in the "dos" namespace for checking if the file's archive flag
642  * is set. This attribute is %TRUE if the archive flag is set. This attribute
643  * is only available for DOS file systems. Corresponding #GFileAttributeType
644  * is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
645  **/
646 #define G_FILE_ATTRIBUTE_DOS_IS_ARCHIVE "dos::is-archive"         /* boolean */
647
648 /**
649  * G_FILE_ATTRIBUTE_DOS_IS_SYSTEM:
650  *
651  * A key in the "dos" namespace for checking if the file's backup flag
652  * is set. This attribute is %TRUE if the backup flag is set. This attribute
653  * is only available for DOS file systems. Corresponding #GFileAttributeType
654  * is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
655  **/
656 #define G_FILE_ATTRIBUTE_DOS_IS_SYSTEM "dos::is-system"           /* boolean */
657
658 /* Owner attributes */
659
660 /**
661  * G_FILE_ATTRIBUTE_OWNER_USER:
662  *
663  * A key in the "owner" namespace for getting the user name of the
664  * file's owner. Corresponding #GFileAttributeType is
665  * %G_FILE_ATTRIBUTE_TYPE_STRING.
666  **/
667 #define G_FILE_ATTRIBUTE_OWNER_USER "owner::user"                 /* string */
668
669 /**
670  * G_FILE_ATTRIBUTE_OWNER_USER_REAL:
671  *
672  * A key in the "owner" namespace for getting the real name of the
673  * user that owns the file. Corresponding #GFileAttributeType is
674  * %G_FILE_ATTRIBUTE_TYPE_STRING.
675  **/
676 #define G_FILE_ATTRIBUTE_OWNER_USER_REAL "owner::user-real"       /* string */
677
678 /**
679  * G_FILE_ATTRIBUTE_OWNER_GROUP:
680  *
681  * A key in the "owner" namespace for getting the file owner's group.
682  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
683  **/
684 #define G_FILE_ATTRIBUTE_OWNER_GROUP "owner::group"               /* string */
685
686 /* Thumbnails */
687
688 /**
689  * G_FILE_ATTRIBUTE_THUMBNAIL_PATH:
690  *
691  * A key in the "thumbnail" namespace for getting the path to the thumbnail
692  * image. Corresponding #GFileAttributeType is
693  * %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
694  **/
695 #define G_FILE_ATTRIBUTE_THUMBNAIL_PATH "thumbnail::path"         /* bytestring */
696 /**
697  * G_FILE_ATTRIBUTE_THUMBNAILING_FAILED:
698  *
699  * A key in the "thumbnail" namespace for checking if thumbnailing failed.
700  * This attribute is %TRUE if thumbnailing failed. Corresponding
701  * #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
702  **/
703 #define G_FILE_ATTRIBUTE_THUMBNAILING_FAILED "thumbnail::failed"         /* boolean */
704 /**
705  * G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID:
706  *
707  * A key in the "thumbnail" namespace for checking whether the thumbnail is outdated.
708  * This attribute is %TRUE if the thumbnail is up-to-date with the file it represents,
709  * and %FALSE if the file has been modified since the thumbnail was generated.
710  *
711  * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED is %TRUE and this attribute is %FALSE,
712  * it indicates that thumbnailing may be attempted again and may succeed.
713  *
714  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
715  *
716  * Since: 2.40
717  */
718 #define G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID "thumbnail::is-valid"        /* boolean */
719
720 /* Preview */
721
722 /**
723  * G_FILE_ATTRIBUTE_PREVIEW_ICON:
724  *
725  * A key in the "preview" namespace for getting a #GIcon that can be
726  * used to get preview of the file. For example, it may be a low
727  * resolution thumbnail without metadata. Corresponding
728  * #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_OBJECT.  The value
729  * for this key should contain a #GIcon.
730  *
731  * Since: 2.20
732  **/
733 #define G_FILE_ATTRIBUTE_PREVIEW_ICON "preview::icon"         /* object (GIcon) */
734
735 /* File system info (for g_file_get_filesystem_info) */
736
737 /**
738  * G_FILE_ATTRIBUTE_FILESYSTEM_SIZE:
739  *
740  * A key in the "filesystem" namespace for getting the total size (in bytes) of the file system,
741  * used in g_file_query_filesystem_info(). Corresponding #GFileAttributeType
742  * is %G_FILE_ATTRIBUTE_TYPE_UINT64.
743  **/
744 #define G_FILE_ATTRIBUTE_FILESYSTEM_SIZE "filesystem::size"                       /* uint64 */
745
746 /**
747  * G_FILE_ATTRIBUTE_FILESYSTEM_FREE:
748  *
749  * A key in the "filesystem" namespace for getting the number of bytes of free space left on the
750  * file system. Corresponding #GFileAttributeType is
751  * %G_FILE_ATTRIBUTE_TYPE_UINT64.
752  **/
753 #define G_FILE_ATTRIBUTE_FILESYSTEM_FREE "filesystem::free"                       /* uint64 */
754
755 /**
756  * G_FILE_ATTRIBUTE_FILESYSTEM_USED:
757  *
758  * A key in the "filesystem" namespace for getting the number of bytes of used on the
759  * file system. Corresponding #GFileAttributeType is
760  * %G_FILE_ATTRIBUTE_TYPE_UINT64.
761  *
762  * Since: 2.32
763  */
764 #define G_FILE_ATTRIBUTE_FILESYSTEM_USED "filesystem::used"                       /* uint64 */
765
766 /**
767  * G_FILE_ATTRIBUTE_FILESYSTEM_TYPE:
768  *
769  * A key in the "filesystem" namespace for getting the file system's type.
770  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
771  **/
772 #define G_FILE_ATTRIBUTE_FILESYSTEM_TYPE "filesystem::type"                       /* string */
773
774 /**
775  * G_FILE_ATTRIBUTE_FILESYSTEM_READONLY:
776  *
777  * A key in the "filesystem" namespace for checking if the file system
778  * is read only. Is set to %TRUE if the file system is read only.
779  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
780  **/
781 #define G_FILE_ATTRIBUTE_FILESYSTEM_READONLY "filesystem::readonly"               /* boolean */
782
783 /**
784  * G_FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW:
785  *
786  * A key in the "filesystem" namespace for hinting a file manager
787  * application whether it should preview (e.g. thumbnail) files on the
788  * file system. The value for this key contain a
789  * #GFilesystemPreviewType.
790  **/
791 #define G_FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW "filesystem::use-preview"        /* uint32 (GFilesystemPreviewType) */
792
793 /**
794  * G_FILE_ATTRIBUTE_GVFS_BACKEND:
795  *
796  * A key in the "gvfs" namespace that gets the name of the current
797  * GVFS backend in use. Corresponding #GFileAttributeType is
798  * %G_FILE_ATTRIBUTE_TYPE_STRING.
799  **/
800 #define G_FILE_ATTRIBUTE_GVFS_BACKEND "gvfs::backend"             /* string */
801
802 /**
803  * G_FILE_ATTRIBUTE_SELINUX_CONTEXT:
804  *
805  * A key in the "selinux" namespace for getting the file's SELinux
806  * context. Corresponding #GFileAttributeType is
807  * %G_FILE_ATTRIBUTE_TYPE_STRING. Note that this attribute is only
808  * available if GLib has been built with SELinux support.
809  **/
810 #define G_FILE_ATTRIBUTE_SELINUX_CONTEXT "selinux::context"       /* string */
811
812 /**
813  * G_FILE_ATTRIBUTE_TRASH_ITEM_COUNT:
814  *
815  * A key in the "trash" namespace.  When requested against
816  * "trash:///" returns the number of (toplevel) items in the trash folder.
817  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
818  **/
819 #define G_FILE_ATTRIBUTE_TRASH_ITEM_COUNT "trash::item-count"     /* uint32 */
820
821 /**
822  * G_FILE_ATTRIBUTE_TRASH_ORIG_PATH:
823  *
824  * A key in the "trash" namespace.  When requested against
825  * items in "trash:///", will return the original path to the file before it
826  * was trashed. Corresponding #GFileAttributeType is
827  * %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
828  *
829  * Since: 2.24.
830  **/
831 #define G_FILE_ATTRIBUTE_TRASH_ORIG_PATH "trash::orig-path"     /* byte string */
832
833 /**
834  * G_FILE_ATTRIBUTE_TRASH_DELETION_DATE:
835  *
836  * A key in the "trash" namespace.  When requested against
837  * items in "trash:///", will return the date and time when the file
838  * was trashed. The format of the returned string is YYYY-MM-DDThh:mm:ss.
839  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
840  *
841  * Since: 2.24.
842  **/
843 #define G_FILE_ATTRIBUTE_TRASH_DELETION_DATE "trash::deletion-date"  /* string */
844
845 GLIB_AVAILABLE_IN_ALL
846 GType              g_file_info_get_type                  (void) G_GNUC_CONST;
847
848 GLIB_AVAILABLE_IN_ALL
849 GFileInfo *        g_file_info_new                       (void);
850 GLIB_AVAILABLE_IN_ALL
851 GFileInfo *        g_file_info_dup                       (GFileInfo  *other);
852 GLIB_AVAILABLE_IN_ALL
853 void               g_file_info_copy_into                 (GFileInfo  *src_info,
854                                                           GFileInfo  *dest_info);
855 GLIB_AVAILABLE_IN_ALL
856 gboolean           g_file_info_has_attribute             (GFileInfo  *info,
857                                                           const char *attribute);
858 GLIB_AVAILABLE_IN_ALL
859 gboolean           g_file_info_has_namespace             (GFileInfo  *info,
860                                                           const char *name_space);
861 GLIB_AVAILABLE_IN_ALL
862 char **            g_file_info_list_attributes           (GFileInfo  *info,
863                                                           const char *name_space);
864 GLIB_AVAILABLE_IN_ALL
865 gboolean           g_file_info_get_attribute_data        (GFileInfo  *info,
866                                                           const char *attribute,
867                                                           GFileAttributeType *type,
868                                                           gpointer   *value_pp,
869                                                           GFileAttributeStatus *status);
870 GLIB_AVAILABLE_IN_ALL
871 GFileAttributeType g_file_info_get_attribute_type        (GFileInfo  *info,
872                                                           const char *attribute);
873 GLIB_AVAILABLE_IN_ALL
874 void               g_file_info_remove_attribute          (GFileInfo  *info,
875                                                           const char *attribute);
876 GLIB_AVAILABLE_IN_ALL
877 GFileAttributeStatus g_file_info_get_attribute_status    (GFileInfo  *info,
878                                                           const char *attribute);
879 GLIB_AVAILABLE_IN_ALL
880 gboolean           g_file_info_set_attribute_status      (GFileInfo  *info,
881                                                           const char *attribute,
882                                                           GFileAttributeStatus status);
883 GLIB_AVAILABLE_IN_ALL
884 char *             g_file_info_get_attribute_as_string   (GFileInfo  *info,
885                                                           const char *attribute);
886 GLIB_AVAILABLE_IN_ALL
887 const char *       g_file_info_get_attribute_string      (GFileInfo  *info,
888                                                           const char *attribute);
889 GLIB_AVAILABLE_IN_ALL
890 const char *       g_file_info_get_attribute_byte_string (GFileInfo  *info,
891                                                           const char *attribute);
892 GLIB_AVAILABLE_IN_ALL
893 gboolean           g_file_info_get_attribute_boolean     (GFileInfo  *info,
894                                                           const char *attribute);
895 GLIB_AVAILABLE_IN_ALL
896 guint32            g_file_info_get_attribute_uint32      (GFileInfo  *info,
897                                                           const char *attribute);
898 GLIB_AVAILABLE_IN_ALL
899 gint32             g_file_info_get_attribute_int32       (GFileInfo  *info,
900                                                           const char *attribute);
901 GLIB_AVAILABLE_IN_ALL
902 guint64            g_file_info_get_attribute_uint64      (GFileInfo  *info,
903                                                           const char *attribute);
904 GLIB_AVAILABLE_IN_ALL
905 gint64             g_file_info_get_attribute_int64       (GFileInfo  *info,
906                                                           const char *attribute);
907 GLIB_AVAILABLE_IN_ALL
908 GObject *          g_file_info_get_attribute_object      (GFileInfo  *info,
909                                                           const char *attribute);
910 GLIB_AVAILABLE_IN_ALL
911 char **            g_file_info_get_attribute_stringv     (GFileInfo  *info,
912                                                           const char *attribute);
913
914 GLIB_AVAILABLE_IN_ALL
915 void               g_file_info_set_attribute             (GFileInfo  *info,
916                                                           const char *attribute,
917                                                           GFileAttributeType type,
918                                                           gpointer    value_p);
919 GLIB_AVAILABLE_IN_ALL
920 void               g_file_info_set_attribute_string      (GFileInfo  *info,
921                                                           const char *attribute,
922                                                           const char *attr_value);
923 GLIB_AVAILABLE_IN_ALL
924 void               g_file_info_set_attribute_byte_string (GFileInfo  *info,
925                                                           const char *attribute,
926                                                           const char *attr_value);
927 GLIB_AVAILABLE_IN_ALL
928 void               g_file_info_set_attribute_boolean     (GFileInfo  *info,
929                                                           const char *attribute,
930                                                           gboolean    attr_value);
931 GLIB_AVAILABLE_IN_ALL
932 void               g_file_info_set_attribute_uint32      (GFileInfo  *info,
933                                                           const char *attribute,
934                                                           guint32     attr_value);
935 GLIB_AVAILABLE_IN_ALL
936 void               g_file_info_set_attribute_int32       (GFileInfo  *info,
937                                                           const char *attribute,
938                                                           gint32      attr_value);
939 GLIB_AVAILABLE_IN_ALL
940 void               g_file_info_set_attribute_uint64      (GFileInfo  *info,
941                                                           const char *attribute,
942                                                           guint64     attr_value);
943 GLIB_AVAILABLE_IN_ALL
944 void               g_file_info_set_attribute_int64       (GFileInfo  *info,
945                                                           const char *attribute,
946                                                           gint64      attr_value);
947 GLIB_AVAILABLE_IN_ALL
948 void               g_file_info_set_attribute_object      (GFileInfo  *info,
949                                                           const char *attribute,
950                                                           GObject    *attr_value);
951 GLIB_AVAILABLE_IN_ALL
952 void               g_file_info_set_attribute_stringv     (GFileInfo  *info,
953                                                           const char *attribute,
954                                                           char      **attr_value);
955
956 GLIB_AVAILABLE_IN_ALL
957 void               g_file_info_clear_status              (GFileInfo  *info);
958
959 /* Helper getters: */
960 GLIB_AVAILABLE_IN_2_36
961 GDateTime *       g_file_info_get_deletion_date      (GFileInfo         *info);
962 GLIB_AVAILABLE_IN_ALL
963 GFileType         g_file_info_get_file_type          (GFileInfo         *info);
964 GLIB_AVAILABLE_IN_ALL
965 gboolean          g_file_info_get_is_hidden          (GFileInfo         *info);
966 GLIB_AVAILABLE_IN_ALL
967 gboolean          g_file_info_get_is_backup          (GFileInfo         *info);
968 GLIB_AVAILABLE_IN_ALL
969 gboolean          g_file_info_get_is_symlink         (GFileInfo         *info);
970 GLIB_AVAILABLE_IN_ALL
971 const char *      g_file_info_get_name               (GFileInfo         *info);
972 GLIB_AVAILABLE_IN_ALL
973 const char *      g_file_info_get_display_name       (GFileInfo         *info);
974 GLIB_AVAILABLE_IN_ALL
975 const char *      g_file_info_get_edit_name          (GFileInfo         *info);
976 GLIB_AVAILABLE_IN_ALL
977 GIcon *           g_file_info_get_icon               (GFileInfo         *info);
978 GLIB_AVAILABLE_IN_ALL
979 GIcon *           g_file_info_get_symbolic_icon      (GFileInfo         *info);
980 GLIB_AVAILABLE_IN_ALL
981 const char *      g_file_info_get_content_type       (GFileInfo         *info);
982 GLIB_AVAILABLE_IN_ALL
983 goffset           g_file_info_get_size               (GFileInfo         *info);
984 GLIB_AVAILABLE_IN_ALL
985 void              g_file_info_get_modification_time  (GFileInfo         *info,
986                                                       GTimeVal          *result);
987 GLIB_AVAILABLE_IN_ALL
988 const char *      g_file_info_get_symlink_target     (GFileInfo         *info);
989 GLIB_AVAILABLE_IN_ALL
990 const char *      g_file_info_get_etag               (GFileInfo         *info);
991 GLIB_AVAILABLE_IN_ALL
992 gint32            g_file_info_get_sort_order         (GFileInfo         *info);
993
994 GLIB_AVAILABLE_IN_ALL
995 void              g_file_info_set_attribute_mask     (GFileInfo         *info,
996                                                       GFileAttributeMatcher *mask);
997 GLIB_AVAILABLE_IN_ALL
998 void              g_file_info_unset_attribute_mask   (GFileInfo         *info);
999
1000 /* Helper setters: */
1001 GLIB_AVAILABLE_IN_ALL
1002 void              g_file_info_set_file_type          (GFileInfo         *info,
1003                                                       GFileType          type);
1004 GLIB_AVAILABLE_IN_ALL
1005 void              g_file_info_set_is_hidden          (GFileInfo         *info,
1006                                                       gboolean           is_hidden);
1007 GLIB_AVAILABLE_IN_ALL
1008 void              g_file_info_set_is_symlink         (GFileInfo         *info,
1009                                                       gboolean           is_symlink);
1010 GLIB_AVAILABLE_IN_ALL
1011 void              g_file_info_set_name               (GFileInfo         *info,
1012                                                       const char        *name);
1013 GLIB_AVAILABLE_IN_ALL
1014 void              g_file_info_set_display_name       (GFileInfo         *info,
1015                                                       const char        *display_name);
1016 GLIB_AVAILABLE_IN_ALL
1017 void              g_file_info_set_edit_name          (GFileInfo         *info,
1018                                                       const char        *edit_name);
1019 GLIB_AVAILABLE_IN_ALL
1020 void              g_file_info_set_icon               (GFileInfo         *info,
1021                                                       GIcon             *icon);
1022 GLIB_AVAILABLE_IN_ALL
1023 void              g_file_info_set_symbolic_icon      (GFileInfo         *info,
1024                                                       GIcon             *icon);
1025 GLIB_AVAILABLE_IN_ALL
1026 void              g_file_info_set_content_type       (GFileInfo         *info,
1027                                                       const char        *content_type);
1028 GLIB_AVAILABLE_IN_ALL
1029 void              g_file_info_set_size               (GFileInfo         *info,
1030                                                       goffset            size);
1031 GLIB_AVAILABLE_IN_ALL
1032 void              g_file_info_set_modification_time  (GFileInfo         *info,
1033                                                       GTimeVal          *mtime);
1034 GLIB_AVAILABLE_IN_ALL
1035 void              g_file_info_set_symlink_target     (GFileInfo         *info,
1036                                                       const char        *symlink_target);
1037 GLIB_AVAILABLE_IN_ALL
1038 void              g_file_info_set_sort_order         (GFileInfo         *info,
1039                                                       gint32             sort_order);
1040
1041 #define G_TYPE_FILE_ATTRIBUTE_MATCHER (g_file_attribute_matcher_get_type ())
1042 GLIB_AVAILABLE_IN_ALL
1043 GType g_file_attribute_matcher_get_type (void) G_GNUC_CONST;
1044
1045 GLIB_AVAILABLE_IN_ALL
1046 GFileAttributeMatcher *g_file_attribute_matcher_new            (const char            *attributes);
1047 GLIB_AVAILABLE_IN_ALL
1048 GFileAttributeMatcher *g_file_attribute_matcher_ref            (GFileAttributeMatcher *matcher);
1049 GLIB_AVAILABLE_IN_ALL
1050 void                   g_file_attribute_matcher_unref          (GFileAttributeMatcher *matcher);
1051 GLIB_AVAILABLE_IN_ALL
1052 GFileAttributeMatcher *g_file_attribute_matcher_subtract       (GFileAttributeMatcher *matcher,
1053                                                                 GFileAttributeMatcher *subtract);
1054 GLIB_AVAILABLE_IN_ALL
1055 gboolean               g_file_attribute_matcher_matches        (GFileAttributeMatcher *matcher,
1056                                                                 const char            *attribute);
1057 GLIB_AVAILABLE_IN_ALL
1058 gboolean               g_file_attribute_matcher_matches_only   (GFileAttributeMatcher *matcher,
1059                                                                 const char            *attribute);
1060 GLIB_AVAILABLE_IN_ALL
1061 gboolean               g_file_attribute_matcher_enumerate_namespace (GFileAttributeMatcher *matcher,
1062                                                                      const char            *ns);
1063 GLIB_AVAILABLE_IN_ALL
1064 const char *           g_file_attribute_matcher_enumerate_next (GFileAttributeMatcher *matcher);
1065 GLIB_AVAILABLE_IN_2_32
1066 char *                 g_file_attribute_matcher_to_string      (GFileAttributeMatcher *matcher);
1067
1068 G_END_DECLS
1069
1070 #endif /* __G_FILE_INFO_H__ */