1 /* GIO - GLib Input, Output and Streaming Library
3 * Copyright (C) 2006-2007 Red Hat, Inc.
5 * SPDX-License-Identifier: LGPL-2.1-or-later
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General
18 * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
20 * Author: Alexander Larsson <alexl@redhat.com>
23 #ifndef __G_FILE_INFO_H__
24 #define __G_FILE_INFO_H__
26 #if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION)
27 #error "Only <gio/gio.h> can be included directly."
30 #include <gio/giotypes.h>
34 #define G_TYPE_FILE_INFO (g_file_info_get_type ())
35 #define G_FILE_INFO(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_FILE_INFO, GFileInfo))
36 #define G_FILE_INFO_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_FILE_INFO, GFileInfoClass))
37 #define G_IS_FILE_INFO(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_FILE_INFO))
38 #define G_IS_FILE_INFO_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_FILE_INFO))
39 #define G_FILE_INFO_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_FILE_INFO, GFileInfoClass))
44 * Stores information about a file system object referenced by a #GFile.
46 typedef struct _GFileInfoClass GFileInfoClass;
49 /* Common Attributes: */
51 * G_FILE_ATTRIBUTE_STANDARD_TYPE:
53 * A key in the "standard" namespace for storing file types.
55 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
57 * The value for this key should contain a #GFileType.
59 #define G_FILE_ATTRIBUTE_STANDARD_TYPE "standard::type" /* uint32 (GFileType) */
62 * G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN:
64 * A key in the "standard" namespace for checking if a file is hidden.
66 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
68 #define G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN "standard::is-hidden" /* boolean */
71 * G_FILE_ATTRIBUTE_STANDARD_IS_BACKUP:
73 * A key in the "standard" namespace for checking if a file is a backup file.
75 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
77 #define G_FILE_ATTRIBUTE_STANDARD_IS_BACKUP "standard::is-backup" /* boolean */
80 * G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK:
82 * A key in the "standard" namespace for checking if the file is a symlink.
83 * Typically the actual type is something else, if we followed the symlink
86 * On Windows NTFS mountpoints are considered to be symlinks as well.
88 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
90 #define G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK "standard::is-symlink" /* boolean */
93 * G_FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL:
95 * A key in the "standard" namespace for checking if a file is virtual.
97 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
99 #define G_FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL "standard::is-virtual" /* boolean */
102 * G_FILE_ATTRIBUTE_STANDARD_IS_VOLATILE:
104 * A key in the "standard" namespace for checking if a file is
105 * volatile. This is meant for opaque, non-POSIX-like backends to
106 * indicate that the URI is not persistent. Applications should look
107 * at %G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET for the persistent URI.
109 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
113 #define G_FILE_ATTRIBUTE_STANDARD_IS_VOLATILE "standard::is-volatile" /* boolean */
116 * G_FILE_ATTRIBUTE_STANDARD_NAME:
118 * A key in the "standard" namespace for getting the name of the file.
120 * The name is the on-disk filename which may not be in any known encoding,
121 * and can thus not be generally displayed as is. It is guaranteed to be set on
124 * Use %G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME if you need to display the
125 * name in a user interface.
127 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
129 #define G_FILE_ATTRIBUTE_STANDARD_NAME "standard::name" /* byte string */
132 * G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME:
134 * A key in the "standard" namespace for getting the display name of the file.
136 * A display name is guaranteed to be in UTF-8 and can thus be displayed in
137 * the UI. It is guaranteed to be set on every file.
139 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
141 #define G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME "standard::display-name" /* string */
144 * G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME:
146 * A key in the "standard" namespace for edit name of the file.
148 * An edit name is similar to the display name, but it is meant to be
149 * used when you want to rename the file in the UI. The display name
150 * might contain information you don't want in the new filename (such as
151 * "(invalid unicode)" if the filename was in an invalid encoding).
153 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
155 #define G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME "standard::edit-name" /* string */
158 * G_FILE_ATTRIBUTE_STANDARD_COPY_NAME:
160 * A key in the "standard" namespace for getting the copy name of the file.
162 * The copy name is an optional version of the name. If available it's always
163 * in UTF8, and corresponds directly to the original filename (only transcoded to
164 * UTF8). This is useful if you want to copy the file to another filesystem that
165 * might have a different encoding. If the filename is not a valid string in the
166 * encoding selected for the filesystem it is in then the copy name will not be set.
168 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
170 #define G_FILE_ATTRIBUTE_STANDARD_COPY_NAME "standard::copy-name" /* string */
173 * G_FILE_ATTRIBUTE_STANDARD_DESCRIPTION:
175 * A key in the "standard" namespace for getting the description of the file.
177 * The description is a utf8 string that describes the file, generally containing
178 * the filename, but can also contain further information. Example descriptions
179 * could be "filename (on hostname)" for a remote file or "filename (in trash)"
180 * for a file in the trash. This is useful for instance as the window title
181 * when displaying a directory or for a bookmarks menu.
183 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
185 #define G_FILE_ATTRIBUTE_STANDARD_DESCRIPTION "standard::description" /* string */
188 * G_FILE_ATTRIBUTE_STANDARD_ICON:
190 * A key in the "standard" namespace for getting the icon for the file.
192 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_OBJECT.
194 * The value for this key should contain a #GIcon.
196 #define G_FILE_ATTRIBUTE_STANDARD_ICON "standard::icon" /* object (GIcon) */
199 * G_FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON:
201 * A key in the "standard" namespace for getting the symbolic icon for the file.
203 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_OBJECT.
205 * The value for this key should contain a #GIcon.
209 #define G_FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON "standard::symbolic-icon" /* object (GIcon) */
212 * G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE:
214 * A key in the "standard" namespace for getting the content type of the file.
216 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
218 * The value for this key should contain a valid content type.
220 #define G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE "standard::content-type" /* string */
223 * G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE:
225 * A key in the "standard" namespace for getting the fast content type.
227 * The fast content type isn't as reliable as the regular one, as it
228 * only uses the filename to guess it, but it is faster to calculate than the
229 * regular content type.
231 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
234 #define G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE "standard::fast-content-type" /* string */
237 * G_FILE_ATTRIBUTE_STANDARD_SIZE:
239 * A key in the "standard" namespace for getting the file's size (in bytes).
241 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
243 #define G_FILE_ATTRIBUTE_STANDARD_SIZE "standard::size" /* uint64 */
246 * G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE:
248 * A key in the "standard" namespace for getting the amount of disk space
249 * that is consumed by the file (in bytes).
251 * This will generally be larger than the file size (due to block size
252 * overhead) but can occasionally be smaller (for example, for sparse files).
254 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
258 #define G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE "standard::allocated-size" /* uint64 */
261 * G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET:
263 * A key in the "standard" namespace for getting the symlink target, if the file
266 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
268 #define G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET "standard::symlink-target" /* byte string */
271 * G_FILE_ATTRIBUTE_STANDARD_TARGET_URI:
273 * A key in the "standard" namespace for getting the target URI for the file, in
274 * the case of %G_FILE_TYPE_SHORTCUT or %G_FILE_TYPE_MOUNTABLE files.
276 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
278 #define G_FILE_ATTRIBUTE_STANDARD_TARGET_URI "standard::target-uri" /* string */
281 * G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER:
283 * A key in the "standard" namespace for setting the sort order of a file.
285 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_INT32.
287 * An example use would be in file managers, which would use this key
288 * to set the order files are displayed. Files with smaller sort order
289 * should be sorted first, and files without sort order as if sort order
292 #define G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER "standard::sort-order" /* int32 */
294 /* Entity tags, used to avoid missing updates on save */
297 * G_FILE_ATTRIBUTE_ETAG_VALUE:
299 * A key in the "etag" namespace for getting the value of the file's
302 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
304 #define G_FILE_ATTRIBUTE_ETAG_VALUE "etag::value" /* string */
306 /* File identifier, for e.g. avoiding loops when doing recursive
311 * G_FILE_ATTRIBUTE_ID_FILE:
313 * A key in the "id" namespace for getting a file identifier.
315 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
317 * An example use would be during listing files, to avoid recursive
318 * directory scanning.
320 #define G_FILE_ATTRIBUTE_ID_FILE "id::file" /* string */
323 * G_FILE_ATTRIBUTE_ID_FILESYSTEM:
325 * A key in the "id" namespace for getting the file system identifier.
327 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
329 * An example use would be during drag and drop to see if the source
330 * and target are on the same filesystem (default to move) or not (default
333 #define G_FILE_ATTRIBUTE_ID_FILESYSTEM "id::filesystem" /* string */
335 /* Calculated Access Rights for current user */
338 * G_FILE_ATTRIBUTE_ACCESS_CAN_READ:
340 * A key in the "access" namespace for getting read privileges.
342 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
344 * This attribute will be %TRUE if the user is able to read the file.
346 #define G_FILE_ATTRIBUTE_ACCESS_CAN_READ "access::can-read" /* boolean */
349 * G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE:
351 * A key in the "access" namespace for getting write privileges.
353 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
355 * This attribute will be %TRUE if the user is able to write to the file.
357 #define G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE "access::can-write" /* boolean */
360 * G_FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE:
362 * A key in the "access" namespace for getting execution privileges.
364 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
366 * This attribute will be %TRUE if the user is able to execute the file.
368 #define G_FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE "access::can-execute" /* boolean */
371 * G_FILE_ATTRIBUTE_ACCESS_CAN_DELETE:
373 * A key in the "access" namespace for checking deletion privileges.
375 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
377 * This attribute will be %TRUE if the user is able to delete the file.
379 #define G_FILE_ATTRIBUTE_ACCESS_CAN_DELETE "access::can-delete" /* boolean */
382 * G_FILE_ATTRIBUTE_ACCESS_CAN_TRASH:
384 * A key in the "access" namespace for checking trashing privileges.
386 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
388 * This attribute will be %TRUE if the user is able to move the file to
391 #define G_FILE_ATTRIBUTE_ACCESS_CAN_TRASH "access::can-trash" /* boolean */
394 * G_FILE_ATTRIBUTE_ACCESS_CAN_RENAME:
396 * A key in the "access" namespace for checking renaming privileges.
398 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
400 * This attribute will be %TRUE if the user is able to rename the file.
402 #define G_FILE_ATTRIBUTE_ACCESS_CAN_RENAME "access::can-rename" /* boolean */
404 /* TODO: Should we have special version for directories? can_enumerate, etc */
406 /* Mountable attributes */
409 * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT:
411 * A key in the "mountable" namespace for checking if a file (of
412 * type G_FILE_TYPE_MOUNTABLE) is mountable.
414 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
416 #define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT "mountable::can-mount" /* boolean */
419 * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT:
421 * A key in the "mountable" namespace for checking if a file (of
422 * type G_FILE_TYPE_MOUNTABLE) is unmountable.
424 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
426 #define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT "mountable::can-unmount" /* boolean */
429 * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT:
431 * A key in the "mountable" namespace for checking if a file (of
432 * type G_FILE_TYPE_MOUNTABLE) can be ejected.
434 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
436 #define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT "mountable::can-eject" /* boolean */
439 * G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE:
441 * A key in the "mountable" namespace for getting the unix device.
443 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
445 #define G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE "mountable::unix-device" /* uint32 */
448 * G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE:
450 * A key in the "mountable" namespace for getting the unix device file.
452 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
456 #define G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE "mountable::unix-device-file" /* string */
459 * G_FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI:
461 * A key in the "mountable" namespace for getting the HAL UDI for the mountable
464 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
466 #define G_FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI "mountable::hal-udi" /* string */
469 * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START:
471 * A key in the "mountable" namespace for checking if a file (of
472 * type G_FILE_TYPE_MOUNTABLE) can be started.
474 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
478 #define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START "mountable::can-start" /* boolean */
481 * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED:
483 * A key in the "mountable" namespace for checking if a file (of
484 * type G_FILE_TYPE_MOUNTABLE) can be started degraded.
486 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
490 #define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED "mountable::can-start-degraded" /* boolean */
493 * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP:
495 * A key in the "mountable" namespace for checking if a file (of
496 * type G_FILE_TYPE_MOUNTABLE) can be stopped.
498 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
502 #define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP "mountable::can-stop" /* boolean */
505 * G_FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE:
507 * A key in the "mountable" namespace for getting the #GDriveStartStopType.
509 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
513 #define G_FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE "mountable::start-stop-type" /* uint32 (GDriveStartStopType) */
516 * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL:
518 * A key in the "mountable" namespace for checking if a file (of
519 * type G_FILE_TYPE_MOUNTABLE) can be polled.
521 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
525 #define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL "mountable::can-poll" /* boolean */
528 * G_FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC:
530 * A key in the "mountable" namespace for checking if a file (of
531 * type G_FILE_TYPE_MOUNTABLE) is automatically polled for media.
533 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
537 #define G_FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC "mountable::is-media-check-automatic" /* boolean */
539 /* Time attributes */
542 * G_FILE_ATTRIBUTE_TIME_MODIFIED:
544 * A key in the "time" namespace for getting the time the file was last
547 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64, and
548 * contains the time since the file was modified, in seconds since the UNIX
551 #define G_FILE_ATTRIBUTE_TIME_MODIFIED "time::modified" /* uint64 */
554 * G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC:
556 * A key in the "time" namespace for getting the microseconds of the time
557 * the file was last modified.
559 * This should be used in conjunction with %G_FILE_ATTRIBUTE_TIME_MODIFIED.
561 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
563 #define G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC "time::modified-usec" /* uint32 */
566 * G_FILE_ATTRIBUTE_TIME_MODIFIED_NSEC:
568 * A key in the "time" namespace for getting the nanoseconds of the time
569 * the file was last modified. This should be used in conjunction with
570 * #G_FILE_ATTRIBUTE_TIME_MODIFIED. Corresponding #GFileAttributeType is
571 * %G_FILE_ATTRIBUTE_TYPE_UINT32.
575 #define G_FILE_ATTRIBUTE_TIME_MODIFIED_NSEC "time::modified-nsec" /* uint32 */
578 * G_FILE_ATTRIBUTE_TIME_ACCESS:
580 * A key in the "time" namespace for getting the time the file was last
583 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64, and
584 * contains the time since the file was last accessed, in seconds since the
587 #define G_FILE_ATTRIBUTE_TIME_ACCESS "time::access" /* uint64 */
590 * G_FILE_ATTRIBUTE_TIME_ACCESS_USEC:
592 * A key in the "time" namespace for getting the microseconds of the time
593 * the file was last accessed.
595 * This should be used in conjunction with %G_FILE_ATTRIBUTE_TIME_ACCESS.
597 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
599 #define G_FILE_ATTRIBUTE_TIME_ACCESS_USEC "time::access-usec" /* uint32 */
602 * G_FILE_ATTRIBUTE_TIME_ACCESS_NSEC:
604 * A key in the "time" namespace for getting the nanoseconds of the time
605 * the file was last accessed. This should be used in conjunction with
606 * #G_FILE_ATTRIBUTE_TIME_ACCESS. Corresponding #GFileAttributeType is
607 * %G_FILE_ATTRIBUTE_TYPE_UINT32.
611 #define G_FILE_ATTRIBUTE_TIME_ACCESS_NSEC "time::access-nsec" /* uint32 */
614 * G_FILE_ATTRIBUTE_TIME_CHANGED:
616 * A key in the "time" namespace for getting the time the file was last
619 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64,
620 * and contains the time since the file was last changed, in seconds since
623 * This corresponds to the traditional UNIX ctime.
625 #define G_FILE_ATTRIBUTE_TIME_CHANGED "time::changed" /* uint64 */
628 * G_FILE_ATTRIBUTE_TIME_CHANGED_USEC:
630 * A key in the "time" namespace for getting the microseconds of the time
631 * the file was last changed.
633 * This should be used in conjunction with %G_FILE_ATTRIBUTE_TIME_CHANGED.
635 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
637 #define G_FILE_ATTRIBUTE_TIME_CHANGED_USEC "time::changed-usec" /* uint32 */
640 * G_FILE_ATTRIBUTE_TIME_CHANGED_NSEC:
642 * A key in the "time" namespace for getting the nanoseconds of the time
643 * the file was last changed. This should be used in conjunction with
644 * #G_FILE_ATTRIBUTE_TIME_CHANGED. Corresponding #GFileAttributeType is
645 * %G_FILE_ATTRIBUTE_TYPE_UINT32.
649 #define G_FILE_ATTRIBUTE_TIME_CHANGED_NSEC "time::changed-nsec" /* uint32 */
652 * G_FILE_ATTRIBUTE_TIME_CREATED:
654 * A key in the "time" namespace for getting the time the file was created.
656 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64,
657 * and contains the time since the file was created, in seconds since the UNIX
660 * This may correspond to Linux `stx_btime`, FreeBSD `st_birthtim`, NetBSD
661 * `st_birthtime` or NTFS `ctime`.
663 #define G_FILE_ATTRIBUTE_TIME_CREATED "time::created" /* uint64 */
666 * G_FILE_ATTRIBUTE_TIME_CREATED_USEC:
668 * A key in the "time" namespace for getting the microseconds of the time
669 * the file was created.
671 * This should be used in conjunction with %G_FILE_ATTRIBUTE_TIME_CREATED.
673 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
675 #define G_FILE_ATTRIBUTE_TIME_CREATED_USEC "time::created-usec" /* uint32 */
678 * G_FILE_ATTRIBUTE_TIME_CREATED_NSEC:
680 * A key in the "time" namespace for getting the nanoseconds of the time
681 * the file was created. This should be used in conjunction with
682 * #G_FILE_ATTRIBUTE_TIME_CREATED. Corresponding #GFileAttributeType is
683 * %G_FILE_ATTRIBUTE_TYPE_UINT32.
687 #define G_FILE_ATTRIBUTE_TIME_CREATED_NSEC "time::created-nsec" /* uint32 */
689 /* Unix specific attributes */
692 * G_FILE_ATTRIBUTE_UNIX_DEVICE:
694 * A key in the "unix" namespace for getting the device id of the device the
695 * file is located on (see stat() documentation).
697 * This attribute is only available for UNIX file systems.
699 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
701 #define G_FILE_ATTRIBUTE_UNIX_DEVICE "unix::device" /* uint32 */
704 * G_FILE_ATTRIBUTE_UNIX_INODE:
706 * A key in the "unix" namespace for getting the inode of the file.
708 * This attribute is only available for UNIX file systems.
710 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
712 #define G_FILE_ATTRIBUTE_UNIX_INODE "unix::inode" /* uint64 */
715 * G_FILE_ATTRIBUTE_UNIX_MODE:
717 * A key in the "unix" namespace for getting the mode of the file
718 * (e.g. whether the file is a regular file, symlink, etc).
720 * See the documentation for `lstat()`: this attribute is equivalent to
721 * the `st_mode` member of `struct stat`, and includes both the file type
724 * This attribute is only available for UNIX file systems.
726 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
728 #define G_FILE_ATTRIBUTE_UNIX_MODE "unix::mode" /* uint32 */
731 * G_FILE_ATTRIBUTE_UNIX_NLINK:
733 * A key in the "unix" namespace for getting the number of hard links
736 * See the documentation for `lstat()`.
738 * This attribute is only available for UNIX file systems.
740 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
742 #define G_FILE_ATTRIBUTE_UNIX_NLINK "unix::nlink" /* uint32 */
745 * G_FILE_ATTRIBUTE_UNIX_UID:
747 * A key in the "unix" namespace for getting the user ID for the file.
749 * This attribute is only available for UNIX file systems.
751 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
753 #define G_FILE_ATTRIBUTE_UNIX_UID "unix::uid" /* uint32 */
756 * G_FILE_ATTRIBUTE_UNIX_GID:
758 * A key in the "unix" namespace for getting the group ID for the file.
760 * This attribute is only available for UNIX file systems.
762 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
764 #define G_FILE_ATTRIBUTE_UNIX_GID "unix::gid" /* uint32 */
767 * G_FILE_ATTRIBUTE_UNIX_RDEV:
769 * A key in the "unix" namespace for getting the device ID for the file
770 * (if it is a special file).
772 * See the documentation for `lstat()`.
774 * This attribute is only available for UNIX file systems.
776 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
778 #define G_FILE_ATTRIBUTE_UNIX_RDEV "unix::rdev" /* uint32 */
781 * G_FILE_ATTRIBUTE_UNIX_BLOCK_SIZE:
783 * A key in the "unix" namespace for getting the block size for the file
786 * This attribute is only available for UNIX file systems.
788 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
790 #define G_FILE_ATTRIBUTE_UNIX_BLOCK_SIZE "unix::block-size" /* uint32 */
793 * G_FILE_ATTRIBUTE_UNIX_BLOCKS:
795 * A key in the "unix" namespace for getting the number of blocks allocated
798 * This attribute is only available for UNIX file systems.
800 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
802 #define G_FILE_ATTRIBUTE_UNIX_BLOCKS "unix::blocks" /* uint64 */
805 * G_FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT:
807 * A key in the "unix" namespace for checking if the file represents a
810 * This attribute is %TRUE if the file is a UNIX mount point.
812 * Since 2.58, `/` is considered to be a mount point.
814 * This attribute is only available for UNIX file systems.
816 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
818 #define G_FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT "unix::is-mountpoint" /* boolean */
820 /* DOS specific attributes */
823 * G_FILE_ATTRIBUTE_DOS_IS_ARCHIVE:
825 * A key in the "dos" namespace for checking if the file's archive flag
828 * This attribute is %TRUE if the archive flag is set.
830 * This attribute is only available for DOS file systems.
832 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
834 #define G_FILE_ATTRIBUTE_DOS_IS_ARCHIVE "dos::is-archive" /* boolean */
837 * G_FILE_ATTRIBUTE_DOS_IS_SYSTEM:
839 * A key in the "dos" namespace for checking if the file's backup flag
842 * This attribute is %TRUE if the backup flag is set.
844 * This attribute is only available for DOS file systems.
846 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
848 #define G_FILE_ATTRIBUTE_DOS_IS_SYSTEM "dos::is-system" /* boolean */
851 * G_FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT:
853 * A key in the "dos" namespace for checking if the file is a NTFS mount point
854 * (a volume mount or a junction point).
856 * This attribute is %TRUE if file is a reparse point of type
857 * [IO_REPARSE_TAG_MOUNT_POINT](https://msdn.microsoft.com/en-us/library/dd541667.aspx).
859 * This attribute is only available for DOS file systems.
861 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
865 #define G_FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT "dos::is-mountpoint" /* boolean */
868 * G_FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG:
870 * A key in the "dos" namespace for getting the file NTFS reparse tag.
872 * This value is 0 for files that are not reparse points.
874 * See the [Reparse Tags](https://msdn.microsoft.com/en-us/library/dd541667.aspx)
875 * page for possible reparse tag values.
877 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
881 #define G_FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG "dos::reparse-point-tag" /* uint32 */
883 /* Owner attributes */
886 * G_FILE_ATTRIBUTE_OWNER_USER:
888 * A key in the "owner" namespace for getting the user name of the
891 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
893 #define G_FILE_ATTRIBUTE_OWNER_USER "owner::user" /* string */
896 * G_FILE_ATTRIBUTE_OWNER_USER_REAL:
898 * A key in the "owner" namespace for getting the real name of the
899 * user that owns the file.
901 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
903 #define G_FILE_ATTRIBUTE_OWNER_USER_REAL "owner::user-real" /* string */
906 * G_FILE_ATTRIBUTE_OWNER_GROUP:
908 * A key in the "owner" namespace for getting the file owner's group.
910 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
912 #define G_FILE_ATTRIBUTE_OWNER_GROUP "owner::group" /* string */
917 * G_FILE_ATTRIBUTE_THUMBNAIL_PATH:
919 * A key in the "thumbnail" namespace for getting the path to the thumbnail
920 * image with the biggest size available.
922 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
924 #define G_FILE_ATTRIBUTE_THUMBNAIL_PATH "thumbnail::path" /* bytestring */
926 * G_FILE_ATTRIBUTE_THUMBNAILING_FAILED:
928 * A key in the "thumbnail" namespace for checking if thumbnailing failed.
930 * This attribute is %TRUE if thumbnailing failed.
932 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
934 #define G_FILE_ATTRIBUTE_THUMBNAILING_FAILED "thumbnail::failed" /* boolean */
936 * G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID:
938 * A key in the "thumbnail" namespace for checking whether the thumbnail is outdated.
940 * This attribute is %TRUE if the thumbnail is up-to-date with the file it represents,
941 * and %FALSE if the file has been modified since the thumbnail was generated.
943 * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED is %TRUE and this attribute is %FALSE,
944 * it indicates that thumbnailing may be attempted again and may succeed.
946 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
950 #define G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID "thumbnail::is-valid" /* boolean */
953 * G_FILE_ATTRIBUTE_THUMBNAIL_PATH_NORMAL:
955 * A key in the "thumbnail" namespace for getting the path to the normal
958 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
962 #define G_FILE_ATTRIBUTE_THUMBNAIL_PATH_NORMAL "thumbnail::path-normal" /* bytestring */
964 * G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL:
966 * A key in the "thumbnail" namespace for checking if thumbnailing failed
967 * for the normal image.
969 * This attribute is %TRUE if thumbnailing failed.
971 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
975 #define G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL "thumbnail::failed-normal" /* boolean */
977 * G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_NORMAL:
979 * A key in the "thumbnail" namespace for checking whether the normal
980 * thumbnail is outdated.
982 * This attribute is %TRUE if the normal thumbnail is up-to-date with the file
983 * it represents, and %FALSE if the file has been modified since the thumbnail
986 * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL is %TRUE and this attribute
987 * is %FALSE, it indicates that thumbnailing may be attempted again and may
990 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
994 #define G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_NORMAL "thumbnail::is-valid-normal" /* boolean */
997 * G_FILE_ATTRIBUTE_THUMBNAIL_PATH_LARGE:
999 * A key in the "thumbnail" namespace for getting the path to the large
1002 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
1006 #define G_FILE_ATTRIBUTE_THUMBNAIL_PATH_LARGE "thumbnail::path-large" /* bytestring */
1008 * G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE:
1010 * A key in the "thumbnail" namespace for checking if thumbnailing failed
1011 * for the large image.
1013 * This attribute is %TRUE if thumbnailing failed.
1015 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
1019 #define G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE "thumbnail::failed-large" /* boolean */
1021 * G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_LARGE:
1023 * A key in the "thumbnail" namespace for checking whether the large
1024 * thumbnail is outdated.
1026 * This attribute is %TRUE if the large thumbnail is up-to-date with the file
1027 * it represents, and %FALSE if the file has been modified since the thumbnail
1030 * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE is %TRUE and this attribute
1031 * is %FALSE, it indicates that thumbnailing may be attempted again and may
1034 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
1038 #define G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_LARGE "thumbnail::is-valid-large" /* boolean */
1041 * G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XLARGE:
1043 * A key in the "thumbnail" namespace for getting the path to the x-large
1046 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
1050 #define G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XLARGE "thumbnail::path-xlarge" /* bytestring */
1052 * G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE:
1054 * A key in the "thumbnail" namespace for checking if thumbnailing failed
1055 * for the x-large image.
1057 * This attribute is %TRUE if thumbnailing failed.
1059 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
1063 #define G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE "thumbnail::failed-xlarge" /* boolean */
1065 * G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XLARGE:
1067 * A key in the "thumbnail" namespace for checking whether the x-large
1068 * thumbnail is outdated.
1070 * This attribute is %TRUE if the x-large thumbnail is up-to-date with the file
1071 * it represents, and %FALSE if the file has been modified since the thumbnail
1074 * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE is %TRUE and this attribute
1075 * is %FALSE, it indicates that thumbnailing may be attempted again and may
1078 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
1082 #define G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XLARGE "thumbnail::is-valid-xlarge" /* boolean */
1085 * G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XXLARGE:
1087 * A key in the "thumbnail" namespace for getting the path to the xx-large
1090 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
1094 #define G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XXLARGE "thumbnail::path-xxlarge" /* bytestring */
1096 * G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XXLARGE:
1098 * A key in the "thumbnail" namespace for checking if thumbnailing failed
1099 * for the xx-large image.
1101 * This attribute is %TRUE if thumbnailing failed.
1103 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
1107 #define G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XXLARGE "thumbnail::failed-xxlarge" /* boolean */
1109 * G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XXLARGE:
1111 * A key in the "thumbnail" namespace for checking whether the xx-large
1112 * thumbnail is outdated.
1114 * This attribute is %TRUE if the x-large thumbnail is up-to-date with the file
1115 * it represents, and %FALSE if the file has been modified since the thumbnail
1118 * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XXLARGE is %TRUE and this attribute
1119 * is %FALSE, it indicates that thumbnailing may be attempted again and may
1122 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
1126 #define G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XXLARGE "thumbnail::is-valid-xxlarge" /* boolean */
1131 * G_FILE_ATTRIBUTE_PREVIEW_ICON:
1133 * A key in the "preview" namespace for getting a #GIcon that can be
1134 * used to get preview of the file.
1136 * For example, it may be a low resolution thumbnail without metadata.
1138 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_OBJECT.
1140 * The value for this key should contain a #GIcon.
1144 #define G_FILE_ATTRIBUTE_PREVIEW_ICON "preview::icon" /* object (GIcon) */
1146 /* File system info (for g_file_get_filesystem_info) */
1149 * G_FILE_ATTRIBUTE_FILESYSTEM_SIZE:
1151 * A key in the "filesystem" namespace for getting the total size (in
1152 * bytes) of the file system, used in g_file_query_filesystem_info().
1154 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
1156 #define G_FILE_ATTRIBUTE_FILESYSTEM_SIZE "filesystem::size" /* uint64 */
1159 * G_FILE_ATTRIBUTE_FILESYSTEM_FREE:
1161 * A key in the "filesystem" namespace for getting the number of bytes
1162 * of free space left on the file system.
1164 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
1166 #define G_FILE_ATTRIBUTE_FILESYSTEM_FREE "filesystem::free" /* uint64 */
1169 * G_FILE_ATTRIBUTE_FILESYSTEM_USED:
1171 * A key in the "filesystem" namespace for getting the number of bytes
1172 * used by data on the file system.
1174 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
1178 #define G_FILE_ATTRIBUTE_FILESYSTEM_USED "filesystem::used" /* uint64 */
1181 * G_FILE_ATTRIBUTE_FILESYSTEM_TYPE:
1183 * A key in the "filesystem" namespace for getting the file system's type.
1185 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
1187 #define G_FILE_ATTRIBUTE_FILESYSTEM_TYPE "filesystem::type" /* string */
1190 * G_FILE_ATTRIBUTE_FILESYSTEM_READONLY:
1192 * A key in the "filesystem" namespace for checking if the file system
1195 * Is set to %TRUE if the file system is read only.
1197 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
1199 #define G_FILE_ATTRIBUTE_FILESYSTEM_READONLY "filesystem::readonly" /* boolean */
1202 * G_FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW:
1204 * A key in the "filesystem" namespace for hinting a file manager
1205 * application whether it should preview (e.g. thumbnail) files on the
1208 * The value for this key contain a #GFilesystemPreviewType.
1210 #define G_FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW "filesystem::use-preview" /* uint32 (GFilesystemPreviewType) */
1213 * G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE:
1215 * A key in the "filesystem" namespace for checking if the file system
1218 * Is set to %TRUE if the file system is remote.
1220 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
1222 #define G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE "filesystem::remote" /* boolean */
1225 * G_FILE_ATTRIBUTE_GVFS_BACKEND:
1227 * A key in the "gvfs" namespace that gets the name of the current
1228 * GVFS backend in use.
1230 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
1232 #define G_FILE_ATTRIBUTE_GVFS_BACKEND "gvfs::backend" /* string */
1235 * G_FILE_ATTRIBUTE_SELINUX_CONTEXT:
1237 * A key in the "selinux" namespace for getting the file's SELinux
1240 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
1242 * Note that this attribute is only available if GLib has been built
1243 * with SELinux support.
1245 #define G_FILE_ATTRIBUTE_SELINUX_CONTEXT "selinux::context" /* string */
1248 * G_FILE_ATTRIBUTE_TRASH_ITEM_COUNT:
1250 * A key in the "trash" namespace for getting the number of (toplevel) items
1251 * that are present in the `trash:///` folder.
1253 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
1255 #define G_FILE_ATTRIBUTE_TRASH_ITEM_COUNT "trash::item-count" /* uint32 */
1258 * G_FILE_ATTRIBUTE_TRASH_ORIG_PATH:
1260 * A key in the "trash" namespace for getting the original path of a file
1261 * inside the `trash:///` folder before it was trashed.
1263 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
1267 #define G_FILE_ATTRIBUTE_TRASH_ORIG_PATH "trash::orig-path" /* byte string */
1270 * G_FILE_ATTRIBUTE_TRASH_DELETION_DATE:
1272 * A key in the "trash" namespace for getting the deletion date and time
1273 * of a file inside the `trash:///` folder.
1275 * The format of the returned string is `YYYY-MM-DDThh:mm:ss`.
1277 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
1281 #define G_FILE_ATTRIBUTE_TRASH_DELETION_DATE "trash::deletion-date" /* string */
1284 * G_FILE_ATTRIBUTE_RECENT_MODIFIED:
1286 * A key in the "recent" namespace for getting time, when the metadata for the
1287 * file in `recent:///` was last changed.
1289 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_INT64.
1293 #define G_FILE_ATTRIBUTE_RECENT_MODIFIED "recent::modified" /* int64 (time_t) */
1295 GIO_AVAILABLE_IN_ALL
1296 GType g_file_info_get_type (void) G_GNUC_CONST;
1298 GIO_AVAILABLE_IN_ALL
1299 GFileInfo * g_file_info_new (void);
1300 GIO_AVAILABLE_IN_ALL
1301 GFileInfo * g_file_info_dup (GFileInfo *other);
1302 GIO_AVAILABLE_IN_ALL
1303 void g_file_info_copy_into (GFileInfo *src_info,
1304 GFileInfo *dest_info);
1305 GIO_AVAILABLE_IN_ALL
1306 gboolean g_file_info_has_attribute (GFileInfo *info,
1307 const char *attribute);
1308 GIO_AVAILABLE_IN_ALL
1309 gboolean g_file_info_has_namespace (GFileInfo *info,
1310 const char *name_space);
1311 GIO_AVAILABLE_IN_ALL
1312 char ** g_file_info_list_attributes (GFileInfo *info,
1313 const char *name_space);
1314 GIO_AVAILABLE_IN_ALL
1315 gboolean g_file_info_get_attribute_data (GFileInfo *info,
1316 const char *attribute,
1317 GFileAttributeType *type,
1319 GFileAttributeStatus *status);
1320 GIO_AVAILABLE_IN_ALL
1321 GFileAttributeType g_file_info_get_attribute_type (GFileInfo *info,
1322 const char *attribute);
1323 GIO_AVAILABLE_IN_ALL
1324 void g_file_info_remove_attribute (GFileInfo *info,
1325 const char *attribute);
1326 GIO_AVAILABLE_IN_ALL
1327 GFileAttributeStatus g_file_info_get_attribute_status (GFileInfo *info,
1328 const char *attribute);
1329 GIO_AVAILABLE_IN_ALL
1330 gboolean g_file_info_set_attribute_status (GFileInfo *info,
1331 const char *attribute,
1332 GFileAttributeStatus status);
1333 GIO_AVAILABLE_IN_ALL
1334 char * g_file_info_get_attribute_as_string (GFileInfo *info,
1335 const char *attribute);
1336 GIO_AVAILABLE_IN_ALL
1337 const char * g_file_info_get_attribute_string (GFileInfo *info,
1338 const char *attribute);
1339 GIO_AVAILABLE_IN_ALL
1340 const char * g_file_info_get_attribute_byte_string (GFileInfo *info,
1341 const char *attribute);
1342 GIO_AVAILABLE_IN_ALL
1343 gboolean g_file_info_get_attribute_boolean (GFileInfo *info,
1344 const char *attribute);
1345 GIO_AVAILABLE_IN_ALL
1346 guint32 g_file_info_get_attribute_uint32 (GFileInfo *info,
1347 const char *attribute);
1348 GIO_AVAILABLE_IN_ALL
1349 gint32 g_file_info_get_attribute_int32 (GFileInfo *info,
1350 const char *attribute);
1351 GIO_AVAILABLE_IN_ALL
1352 guint64 g_file_info_get_attribute_uint64 (GFileInfo *info,
1353 const char *attribute);
1354 GIO_AVAILABLE_IN_ALL
1355 gint64 g_file_info_get_attribute_int64 (GFileInfo *info,
1356 const char *attribute);
1357 GIO_AVAILABLE_IN_ALL
1358 GObject * g_file_info_get_attribute_object (GFileInfo *info,
1359 const char *attribute);
1360 GIO_AVAILABLE_IN_ALL
1361 char ** g_file_info_get_attribute_stringv (GFileInfo *info,
1362 const char *attribute);
1363 GIO_AVAILABLE_IN_2_78
1364 const char * g_file_info_get_attribute_file_path (GFileInfo *info,
1365 const char *attribute);
1367 GIO_AVAILABLE_IN_ALL
1368 void g_file_info_set_attribute (GFileInfo *info,
1369 const char *attribute,
1370 GFileAttributeType type,
1372 GIO_AVAILABLE_IN_ALL
1373 void g_file_info_set_attribute_string (GFileInfo *info,
1374 const char *attribute,
1375 const char *attr_value);
1376 GIO_AVAILABLE_IN_ALL
1377 void g_file_info_set_attribute_byte_string (GFileInfo *info,
1378 const char *attribute,
1379 const char *attr_value);
1380 GIO_AVAILABLE_IN_ALL
1381 void g_file_info_set_attribute_boolean (GFileInfo *info,
1382 const char *attribute,
1383 gboolean attr_value);
1384 GIO_AVAILABLE_IN_ALL
1385 void g_file_info_set_attribute_uint32 (GFileInfo *info,
1386 const char *attribute,
1387 guint32 attr_value);
1388 GIO_AVAILABLE_IN_ALL
1389 void g_file_info_set_attribute_int32 (GFileInfo *info,
1390 const char *attribute,
1392 GIO_AVAILABLE_IN_ALL
1393 void g_file_info_set_attribute_uint64 (GFileInfo *info,
1394 const char *attribute,
1395 guint64 attr_value);
1396 GIO_AVAILABLE_IN_ALL
1397 void g_file_info_set_attribute_int64 (GFileInfo *info,
1398 const char *attribute,
1400 GIO_AVAILABLE_IN_ALL
1401 void g_file_info_set_attribute_object (GFileInfo *info,
1402 const char *attribute,
1403 GObject *attr_value);
1404 GIO_AVAILABLE_IN_ALL
1405 void g_file_info_set_attribute_stringv (GFileInfo *info,
1406 const char *attribute,
1408 GIO_AVAILABLE_IN_2_78
1409 void g_file_info_set_attribute_file_path (GFileInfo *info,
1410 const char *attribute,
1411 const char *attr_value);
1413 GIO_AVAILABLE_IN_ALL
1414 void g_file_info_clear_status (GFileInfo *info);
1416 /* Helper getters: */
1417 GIO_AVAILABLE_IN_2_36
1418 GDateTime * g_file_info_get_deletion_date (GFileInfo *info);
1419 GIO_AVAILABLE_IN_ALL
1420 GFileType g_file_info_get_file_type (GFileInfo *info);
1421 GIO_AVAILABLE_IN_ALL
1422 gboolean g_file_info_get_is_hidden (GFileInfo *info);
1423 GIO_AVAILABLE_IN_ALL
1424 gboolean g_file_info_get_is_backup (GFileInfo *info);
1425 GIO_AVAILABLE_IN_ALL
1426 gboolean g_file_info_get_is_symlink (GFileInfo *info);
1427 GIO_AVAILABLE_IN_ALL
1428 const char * g_file_info_get_name (GFileInfo *info);
1429 GIO_AVAILABLE_IN_ALL
1430 const char * g_file_info_get_display_name (GFileInfo *info);
1431 GIO_AVAILABLE_IN_ALL
1432 const char * g_file_info_get_edit_name (GFileInfo *info);
1433 GIO_AVAILABLE_IN_ALL
1434 GIcon * g_file_info_get_icon (GFileInfo *info);
1435 GIO_AVAILABLE_IN_ALL
1436 GIcon * g_file_info_get_symbolic_icon (GFileInfo *info);
1437 GIO_AVAILABLE_IN_ALL
1438 const char * g_file_info_get_content_type (GFileInfo *info);
1439 GIO_AVAILABLE_IN_ALL
1440 goffset g_file_info_get_size (GFileInfo *info);
1441 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
1442 GIO_DEPRECATED_IN_2_62_FOR(g_file_info_get_modification_date_time)
1443 void g_file_info_get_modification_time (GFileInfo *info,
1445 G_GNUC_END_IGNORE_DEPRECATIONS
1446 GIO_AVAILABLE_IN_2_62
1447 GDateTime * g_file_info_get_modification_date_time (GFileInfo *info);
1448 GIO_AVAILABLE_IN_2_70
1449 GDateTime * g_file_info_get_access_date_time (GFileInfo *info);
1450 GIO_AVAILABLE_IN_2_70
1451 GDateTime * g_file_info_get_creation_date_time (GFileInfo *info);
1452 GIO_AVAILABLE_IN_ALL
1453 const char * g_file_info_get_symlink_target (GFileInfo *info);
1454 GIO_AVAILABLE_IN_ALL
1455 const char * g_file_info_get_etag (GFileInfo *info);
1456 GIO_AVAILABLE_IN_ALL
1457 gint32 g_file_info_get_sort_order (GFileInfo *info);
1459 GIO_AVAILABLE_IN_ALL
1460 void g_file_info_set_attribute_mask (GFileInfo *info,
1461 GFileAttributeMatcher *mask);
1462 GIO_AVAILABLE_IN_ALL
1463 void g_file_info_unset_attribute_mask (GFileInfo *info);
1465 /* Helper setters: */
1466 GIO_AVAILABLE_IN_ALL
1467 void g_file_info_set_file_type (GFileInfo *info,
1469 GIO_AVAILABLE_IN_ALL
1470 void g_file_info_set_is_hidden (GFileInfo *info,
1471 gboolean is_hidden);
1472 GIO_AVAILABLE_IN_ALL
1473 void g_file_info_set_is_symlink (GFileInfo *info,
1474 gboolean is_symlink);
1475 GIO_AVAILABLE_IN_ALL
1476 void g_file_info_set_name (GFileInfo *info,
1478 GIO_AVAILABLE_IN_ALL
1479 void g_file_info_set_display_name (GFileInfo *info,
1480 const char *display_name);
1481 GIO_AVAILABLE_IN_ALL
1482 void g_file_info_set_edit_name (GFileInfo *info,
1483 const char *edit_name);
1484 GIO_AVAILABLE_IN_ALL
1485 void g_file_info_set_icon (GFileInfo *info,
1487 GIO_AVAILABLE_IN_ALL
1488 void g_file_info_set_symbolic_icon (GFileInfo *info,
1490 GIO_AVAILABLE_IN_ALL
1491 void g_file_info_set_content_type (GFileInfo *info,
1492 const char *content_type);
1493 GIO_AVAILABLE_IN_ALL
1494 void g_file_info_set_size (GFileInfo *info,
1496 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
1497 GIO_DEPRECATED_IN_2_62_FOR(g_file_info_set_modification_date_time)
1498 void g_file_info_set_modification_time (GFileInfo *info,
1500 G_GNUC_END_IGNORE_DEPRECATIONS
1501 GIO_AVAILABLE_IN_2_62
1502 void g_file_info_set_modification_date_time (GFileInfo *info,
1504 GIO_AVAILABLE_IN_2_70
1505 void g_file_info_set_access_date_time (GFileInfo *info,
1507 GIO_AVAILABLE_IN_2_70
1508 void g_file_info_set_creation_date_time (GFileInfo *info,
1509 GDateTime *creation_time);
1510 GIO_AVAILABLE_IN_ALL
1511 void g_file_info_set_symlink_target (GFileInfo *info,
1512 const char *symlink_target);
1513 GIO_AVAILABLE_IN_ALL
1514 void g_file_info_set_sort_order (GFileInfo *info,
1517 #define G_TYPE_FILE_ATTRIBUTE_MATCHER (g_file_attribute_matcher_get_type ())
1518 GIO_AVAILABLE_IN_ALL
1519 GType g_file_attribute_matcher_get_type (void) G_GNUC_CONST;
1521 GIO_AVAILABLE_IN_ALL
1522 GFileAttributeMatcher *g_file_attribute_matcher_new (const char *attributes);
1523 GIO_AVAILABLE_IN_ALL
1524 GFileAttributeMatcher *g_file_attribute_matcher_ref (GFileAttributeMatcher *matcher);
1525 GIO_AVAILABLE_IN_ALL
1526 void g_file_attribute_matcher_unref (GFileAttributeMatcher *matcher);
1527 GIO_AVAILABLE_IN_ALL
1528 GFileAttributeMatcher *g_file_attribute_matcher_subtract (GFileAttributeMatcher *matcher,
1529 GFileAttributeMatcher *subtract);
1530 GIO_AVAILABLE_IN_ALL
1531 gboolean g_file_attribute_matcher_matches (GFileAttributeMatcher *matcher,
1532 const char *attribute);
1533 GIO_AVAILABLE_IN_ALL
1534 gboolean g_file_attribute_matcher_matches_only (GFileAttributeMatcher *matcher,
1535 const char *attribute);
1536 GIO_AVAILABLE_IN_ALL
1537 gboolean g_file_attribute_matcher_enumerate_namespace (GFileAttributeMatcher *matcher,
1539 GIO_AVAILABLE_IN_ALL
1540 const char * g_file_attribute_matcher_enumerate_next (GFileAttributeMatcher *matcher);
1541 GIO_AVAILABLE_IN_2_32
1542 char * g_file_attribute_matcher_to_string (GFileAttributeMatcher *matcher);
1546 #endif /* __G_FILE_INFO_H__ */