1/* GIO - GLib Input, Output and Streaming Library
2 *
3 * Copyright (C) 2006-2007 Red Hat, Inc.
4 *
5 * SPDX-License-Identifier: LGPL-2.1-or-later
6 *
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.
11 *
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.
16 *
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/>.
19 *
20 * Author: Alexander Larsson <alexl@redhat.com>
21 */
22
23#ifndef __G_FILE_INFO_H__
24#define __G_FILE_INFO_H__
25
26#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION)
27#error "Only <gio/gio.h> can be included directly."
28#endif
29
30#include <gio/giotypes.h>
31
32G_BEGIN_DECLS
33
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))
40
41typedef struct _GFileInfoClass GFileInfoClass;
42
43
44/* Common Attributes: */
45/**
46 * G_FILE_ATTRIBUTE_STANDARD_TYPE:
47 *
48 * A key in the "standard" namespace for storing file types.
49 *
50 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
51 *
52 * The value for this key should contain a #GFileType.
53 **/
54#define G_FILE_ATTRIBUTE_STANDARD_TYPE "standard::type" /* uint32 (GFileType) */
55
56/**
57 * G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN:
58 *
59 * A key in the "standard" namespace for checking if a file is hidden.
60 *
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 *
70 * The exact semantics of what constitutes a backup file are backend-specific.
71 * For local files, a file is considered a backup if its name ends with `~`
72 * and it is a regular file. This follows the POSIX convention used by text
73 * editors such as Emacs.
74 *
75 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
76 **/
77#define G_FILE_ATTRIBUTE_STANDARD_IS_BACKUP "standard::is-backup" /* boolean */
78
79/**
80 * G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK:
81 *
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
84 * to get the type.
85 *
86 * On Windows NTFS mountpoints are considered to be symlinks as well.
87 *
88 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
89 **/
90#define G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK "standard::is-symlink" /* boolean */
91
92/**
93 * G_FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL:
94 *
95 * A key in the "standard" namespace for checking if a file is virtual.
96 *
97 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
98 **/
99#define G_FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL "standard::is-virtual" /* boolean */
100
101/**
102 * G_FILE_ATTRIBUTE_STANDARD_IS_VOLATILE:
103 *
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.
108 *
109 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
110 *
111 * Since: 2.46
112 **/
113#define G_FILE_ATTRIBUTE_STANDARD_IS_VOLATILE "standard::is-volatile" /* boolean */
114
115/**
116 * G_FILE_ATTRIBUTE_STANDARD_NAME:
117 *
118 * A key in the "standard" namespace for getting the name of the file.
119 *
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
122 * every file.
123 *
124 * Use %G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME if you need to display the
125 * name in a user interface.
126 *
127 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
128 **/
129#define G_FILE_ATTRIBUTE_STANDARD_NAME "standard::name" /* byte string */
130
131/**
132 * G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME:
133 *
134 * A key in the "standard" namespace for getting the display name of the file.
135 *
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.
138 *
139 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
140 **/
141#define G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME "standard::display-name" /* string */
142
143/**
144 * G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME:
145 *
146 * A key in the "standard" namespace for edit name of the file.
147 *
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).
152 *
153 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
154 **/
155#define G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME "standard::edit-name" /* string */
156
157/**
158 * G_FILE_ATTRIBUTE_STANDARD_COPY_NAME:
159 *
160 * A key in the "standard" namespace for getting the copy name of the file.
161 *
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.
167 *
168 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
169 **/
170#define G_FILE_ATTRIBUTE_STANDARD_COPY_NAME "standard::copy-name" /* string */
171
172/**
173 * G_FILE_ATTRIBUTE_STANDARD_DESCRIPTION:
174 *
175 * A key in the "standard" namespace for getting the description of the file.
176 *
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.
182 *
183 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
184 **/
185#define G_FILE_ATTRIBUTE_STANDARD_DESCRIPTION "standard::description" /* string */
186
187/**
188 * G_FILE_ATTRIBUTE_STANDARD_ICON:
189 *
190 * A key in the "standard" namespace for getting the icon for the file.
191 *
192 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_OBJECT.
193 *
194 * The value for this key should contain a #GIcon.
195 **/
196#define G_FILE_ATTRIBUTE_STANDARD_ICON "standard::icon" /* object (GIcon) */
197
198/**
199 * G_FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON:
200 *
201 * A key in the "standard" namespace for getting the symbolic icon for the file.
202 *
203 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_OBJECT.
204 *
205 * The value for this key should contain a #GIcon.
206 *
207 * Since: 2.34
208 **/
209#define G_FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON "standard::symbolic-icon" /* object (GIcon) */
210
211/**
212 * G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE:
213 *
214 * A key in the "standard" namespace for getting the content type of the file.
215 *
216 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
217 *
218 * The value for this key should contain a valid content type.
219 **/
220#define G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE "standard::content-type" /* string */
221
222/**
223 * G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE:
224 *
225 * A key in the "standard" namespace for getting the fast content type.
226 *
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.
230 *
231 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
232 *
233 **/
234#define G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE "standard::fast-content-type" /* string */
235
236/**
237 * G_FILE_ATTRIBUTE_STANDARD_SIZE:
238 *
239 * A key in the "standard" namespace for getting the file's size (in bytes).
240 *
241 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
242 **/
243#define G_FILE_ATTRIBUTE_STANDARD_SIZE "standard::size" /* uint64 */
244
245/**
246 * G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE:
247 *
248 * A key in the "standard" namespace for getting the amount of disk space
249 * that is consumed by the file (in bytes).
250 *
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).
253 *
254 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
255 *
256 * Since: 2.20
257 **/
258#define G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE "standard::allocated-size" /* uint64 */
259
260/**
261 * G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET:
262 *
263 * A key in the "standard" namespace for getting the symlink target, if the file
264 * is a symlink.
265 *
266 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
267 **/
268#define G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET "standard::symlink-target" /* byte string */
269
270/**
271 * G_FILE_ATTRIBUTE_STANDARD_TARGET_URI:
272 *
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.
275 *
276 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
277 **/
278#define G_FILE_ATTRIBUTE_STANDARD_TARGET_URI "standard::target-uri" /* string */
279
280/**
281 * G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER:
282 *
283 * A key in the "standard" namespace for setting the sort order of a file.
284 *
285 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_INT32.
286 *
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
290 * was zero.
291 **/
292#define G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER "standard::sort-order" /* int32 */
293
294/* Entity tags, used to avoid missing updates on save */
295
296/**
297 * G_FILE_ATTRIBUTE_ETAG_VALUE:
298 *
299 * A key in the "etag" namespace for getting the value of the file's
300 * entity tag.
301 *
302 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
303 **/
304#define G_FILE_ATTRIBUTE_ETAG_VALUE "etag::value" /* string */
305
306/* File identifier, for e.g. avoiding loops when doing recursive
307 * directory scanning
308 */
309
310/**
311 * G_FILE_ATTRIBUTE_ID_FILE:
312 *
313 * A key in the "id" namespace for getting a file identifier.
314 *
315 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
316 *
317 * An example use would be during listing files, to avoid recursive
318 * directory scanning.
319 *
320 * For local files on Linux, this is a combination of the file’s device number
321 * and inode, so is invariant with respect to hard linking. The format used by
322 * other VFS implementations may vary, and some VFS backends may not set it.
323 *
324 * For simply seeing if two [iface@Gio.File] instances refer to the same path
325 * on disk, see [method@Gio.File.equal].
326 **/
327#define G_FILE_ATTRIBUTE_ID_FILE "id::file" /* string */
328
329/**
330 * G_FILE_ATTRIBUTE_ID_FILESYSTEM:
331 *
332 * A key in the "id" namespace for getting the file system identifier.
333 *
334 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
335 *
336 * An example use would be during drag and drop to see if the source
337 * and target are on the same filesystem (default to move) or not (default
338 * to copy).
339 **/
340#define G_FILE_ATTRIBUTE_ID_FILESYSTEM "id::filesystem" /* string */
341
342/* Calculated Access Rights for current user */
343
344/**
345 * G_FILE_ATTRIBUTE_ACCESS_CAN_READ:
346 *
347 * A key in the "access" namespace for getting read privileges.
348 *
349 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
350 *
351 * This attribute will be %TRUE if the user is able to read the file.
352 **/
353#define G_FILE_ATTRIBUTE_ACCESS_CAN_READ "access::can-read" /* boolean */
354
355/**
356 * G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE:
357 *
358 * A key in the "access" namespace for getting write privileges.
359 *
360 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
361 *
362 * This attribute will be %TRUE if the user is able to write to the file.
363 **/
364#define G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE "access::can-write" /* boolean */
365
366/**
367 * G_FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE:
368 *
369 * A key in the "access" namespace for getting execution privileges.
370 *
371 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
372 *
373 * This attribute will be %TRUE if the user is able to execute the file.
374 **/
375#define G_FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE "access::can-execute" /* boolean */
376
377/**
378 * G_FILE_ATTRIBUTE_ACCESS_CAN_DELETE:
379 *
380 * A key in the "access" namespace for checking deletion privileges.
381 *
382 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
383 *
384 * This attribute will be %TRUE if the user is able to delete the file.
385 **/
386#define G_FILE_ATTRIBUTE_ACCESS_CAN_DELETE "access::can-delete" /* boolean */
387
388/**
389 * G_FILE_ATTRIBUTE_ACCESS_CAN_TRASH:
390 *
391 * A key in the "access" namespace for checking trashing privileges.
392 *
393 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
394 *
395 * This attribute will be %TRUE if the user is able to move the file to
396 * the trash.
397 **/
398#define G_FILE_ATTRIBUTE_ACCESS_CAN_TRASH "access::can-trash" /* boolean */
399
400/**
401 * G_FILE_ATTRIBUTE_ACCESS_CAN_RENAME:
402 *
403 * A key in the "access" namespace for checking renaming privileges.
404 *
405 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
406 *
407 * This attribute will be %TRUE if the user is able to rename the file.
408 **/
409#define G_FILE_ATTRIBUTE_ACCESS_CAN_RENAME "access::can-rename" /* boolean */
410
411/* TODO: Should we have special version for directories? can_enumerate, etc */
412
413/* Mountable attributes */
414
415/**
416 * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT:
417 *
418 * A key in the "mountable" namespace for checking if a file (of
419 * type G_FILE_TYPE_MOUNTABLE) is mountable.
420 *
421 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
422 **/
423#define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT "mountable::can-mount" /* boolean */
424
425/**
426 * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT:
427 *
428 * A key in the "mountable" namespace for checking if a file (of
429 * type G_FILE_TYPE_MOUNTABLE) is unmountable.
430 *
431 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
432 **/
433#define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT "mountable::can-unmount" /* boolean */
434
435/**
436 * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT:
437 *
438 * A key in the "mountable" namespace for checking if a file (of
439 * type G_FILE_TYPE_MOUNTABLE) can be ejected.
440 *
441 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
442 **/
443#define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT "mountable::can-eject" /* boolean */
444
445/**
446 * G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE:
447 *
448 * A key in the "mountable" namespace for getting the unix device.
449 *
450 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
451 **/
452#define G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE "mountable::unix-device" /* uint32 */
453
454/**
455 * G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE:
456 *
457 * A key in the "mountable" namespace for getting the unix device file.
458 *
459 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
460 *
461 * Since: 2.22
462 **/
463#define G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE "mountable::unix-device-file" /* string */
464
465/**
466 * G_FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI:
467 *
468 * A key in the "mountable" namespace for getting the HAL UDI for the mountable
469 * file.
470 *
471 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
472 **/
473#define G_FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI "mountable::hal-udi" /* string */
474
475/**
476 * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START:
477 *
478 * A key in the "mountable" namespace for checking if a file (of
479 * type G_FILE_TYPE_MOUNTABLE) can be started.
480 *
481 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
482 *
483 * Since: 2.22
484 */
485#define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START "mountable::can-start" /* boolean */
486
487/**
488 * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED:
489 *
490 * A key in the "mountable" namespace for checking if a file (of
491 * type G_FILE_TYPE_MOUNTABLE) can be started degraded.
492 *
493 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
494 *
495 * Since: 2.22
496 */
497#define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED "mountable::can-start-degraded" /* boolean */
498
499/**
500 * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP:
501 *
502 * A key in the "mountable" namespace for checking if a file (of
503 * type G_FILE_TYPE_MOUNTABLE) can be stopped.
504 *
505 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
506 *
507 * Since: 2.22
508 */
509#define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP "mountable::can-stop" /* boolean */
510
511/**
512 * G_FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE:
513 *
514 * A key in the "mountable" namespace for getting the #GDriveStartStopType.
515 *
516 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
517 *
518 * Since: 2.22
519 */
520#define G_FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE "mountable::start-stop-type" /* uint32 (GDriveStartStopType) */
521
522/**
523 * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL:
524 *
525 * A key in the "mountable" namespace for checking if a file (of
526 * type G_FILE_TYPE_MOUNTABLE) can be polled.
527 *
528 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
529 *
530 * Since: 2.22
531 */
532#define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL "mountable::can-poll" /* boolean */
533
534/**
535 * G_FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC:
536 *
537 * A key in the "mountable" namespace for checking if a file (of
538 * type G_FILE_TYPE_MOUNTABLE) is automatically polled for media.
539 *
540 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
541 *
542 * Since: 2.22
543 */
544#define G_FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC "mountable::is-media-check-automatic" /* boolean */
545
546/* Time attributes */
547
548/**
549 * G_FILE_ATTRIBUTE_TIME_MODIFIED:
550 *
551 * A key in the "time" namespace for getting the time the file was last
552 * modified.
553 *
554 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64, and
555 * contains the time since the file was modified, in seconds since the UNIX
556 * epoch.
557 **/
558#define G_FILE_ATTRIBUTE_TIME_MODIFIED "time::modified" /* uint64 */
559
560/**
561 * G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC:
562 *
563 * A key in the "time" namespace for getting the microseconds of the time
564 * the file was last modified.
565 *
566 * This should be used in conjunction with %G_FILE_ATTRIBUTE_TIME_MODIFIED.
567 *
568 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
569 **/
570#define G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC "time::modified-usec" /* uint32 */
571
572/**
573 * G_FILE_ATTRIBUTE_TIME_MODIFIED_NSEC:
574 *
575 * A key in the "time" namespace for getting the nanoseconds of the time
576 * the file was last modified. This should be used in conjunction with
577 * #G_FILE_ATTRIBUTE_TIME_MODIFIED. Corresponding #GFileAttributeType is
578 * %G_FILE_ATTRIBUTE_TYPE_UINT32.
579 *
580 * Since: 2.74
581 **/
582#define G_FILE_ATTRIBUTE_TIME_MODIFIED_NSEC "time::modified-nsec" /* uint32 */
583
584/**
585 * G_FILE_ATTRIBUTE_TIME_ACCESS:
586 *
587 * A key in the "time" namespace for getting the time the file was last
588 * accessed.
589 *
590 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64, and
591 * contains the time since the file was last accessed, in seconds since the
592 * UNIX epoch.
593 **/
594#define G_FILE_ATTRIBUTE_TIME_ACCESS "time::access" /* uint64 */
595
596/**
597 * G_FILE_ATTRIBUTE_TIME_ACCESS_USEC:
598 *
599 * A key in the "time" namespace for getting the microseconds of the time
600 * the file was last accessed.
601 *
602 * This should be used in conjunction with %G_FILE_ATTRIBUTE_TIME_ACCESS.
603 *
604 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
605 **/
606#define G_FILE_ATTRIBUTE_TIME_ACCESS_USEC "time::access-usec" /* uint32 */
607
608/**
609 * G_FILE_ATTRIBUTE_TIME_ACCESS_NSEC:
610 *
611 * A key in the "time" namespace for getting the nanoseconds of the time
612 * the file was last accessed. This should be used in conjunction with
613 * #G_FILE_ATTRIBUTE_TIME_ACCESS. Corresponding #GFileAttributeType is
614 * %G_FILE_ATTRIBUTE_TYPE_UINT32.
615 *
616 * Since: 2.74
617 **/
618#define G_FILE_ATTRIBUTE_TIME_ACCESS_NSEC "time::access-nsec" /* uint32 */
619
620/**
621 * G_FILE_ATTRIBUTE_TIME_CHANGED:
622 *
623 * A key in the "time" namespace for getting the time the file was last
624 * changed.
625 *
626 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64,
627 * and contains the time since the file was last changed, in seconds since
628 * the UNIX epoch.
629 *
630 * This corresponds to the traditional UNIX ctime.
631 **/
632#define G_FILE_ATTRIBUTE_TIME_CHANGED "time::changed" /* uint64 */
633
634/**
635 * G_FILE_ATTRIBUTE_TIME_CHANGED_USEC:
636 *
637 * A key in the "time" namespace for getting the microseconds of the time
638 * the file was last changed.
639 *
640 * This should be used in conjunction with %G_FILE_ATTRIBUTE_TIME_CHANGED.
641 *
642 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
643 **/
644#define G_FILE_ATTRIBUTE_TIME_CHANGED_USEC "time::changed-usec" /* uint32 */
645
646/**
647 * G_FILE_ATTRIBUTE_TIME_CHANGED_NSEC:
648 *
649 * A key in the "time" namespace for getting the nanoseconds of the time
650 * the file was last changed. This should be used in conjunction with
651 * #G_FILE_ATTRIBUTE_TIME_CHANGED. Corresponding #GFileAttributeType is
652 * %G_FILE_ATTRIBUTE_TYPE_UINT32.
653 *
654 * Since: 2.74
655 **/
656#define G_FILE_ATTRIBUTE_TIME_CHANGED_NSEC "time::changed-nsec" /* uint32 */
657
658/**
659 * G_FILE_ATTRIBUTE_TIME_CREATED:
660 *
661 * A key in the "time" namespace for getting the time the file was created.
662 *
663 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64,
664 * and contains the time since the file was created, in seconds since the UNIX
665 * epoch.
666 *
667 * This may correspond to Linux `stx_btime`, FreeBSD `st_birthtim`, NetBSD
668 * `st_birthtime` or NTFS `ctime`.
669 **/
670#define G_FILE_ATTRIBUTE_TIME_CREATED "time::created" /* uint64 */
671
672/**
673 * G_FILE_ATTRIBUTE_TIME_CREATED_USEC:
674 *
675 * A key in the "time" namespace for getting the microseconds of the time
676 * the file was created.
677 *
678 * This should be used in conjunction with %G_FILE_ATTRIBUTE_TIME_CREATED.
679 *
680 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
681 **/
682#define G_FILE_ATTRIBUTE_TIME_CREATED_USEC "time::created-usec" /* uint32 */
683
684/**
685 * G_FILE_ATTRIBUTE_TIME_CREATED_NSEC:
686 *
687 * A key in the "time" namespace for getting the nanoseconds of the time
688 * the file was created. This should be used in conjunction with
689 * #G_FILE_ATTRIBUTE_TIME_CREATED. Corresponding #GFileAttributeType is
690 * %G_FILE_ATTRIBUTE_TYPE_UINT32.
691 *
692 * Since: 2.74
693 **/
694#define G_FILE_ATTRIBUTE_TIME_CREATED_NSEC "time::created-nsec" /* uint32 */
695
696/* Unix specific attributes */
697
698/**
699 * G_FILE_ATTRIBUTE_UNIX_DEVICE:
700 *
701 * A key in the "unix" namespace for getting the device id of the device the
702 * file is located on (see stat() documentation).
703 *
704 * This attribute is only available for UNIX file systems.
705 *
706 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
707 **/
708#define G_FILE_ATTRIBUTE_UNIX_DEVICE "unix::device" /* uint32 */
709
710/**
711 * G_FILE_ATTRIBUTE_UNIX_INODE:
712 *
713 * A key in the "unix" namespace for getting the inode of the file.
714 *
715 * This attribute is only available for UNIX file systems.
716 *
717 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
718 **/
719#define G_FILE_ATTRIBUTE_UNIX_INODE "unix::inode" /* uint64 */
720
721/**
722 * G_FILE_ATTRIBUTE_UNIX_MODE:
723 *
724 * A key in the "unix" namespace for getting the mode of the file
725 * (e.g. whether the file is a regular file, symlink, etc).
726 *
727 * See the documentation for `lstat()`: this attribute is equivalent to
728 * the `st_mode` member of `struct stat`, and includes both the file type
729 * and permissions.
730 *
731 * This attribute is only available for UNIX file systems.
732 *
733 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
734 **/
735#define G_FILE_ATTRIBUTE_UNIX_MODE "unix::mode" /* uint32 */
736
737/**
738 * G_FILE_ATTRIBUTE_UNIX_NLINK:
739 *
740 * A key in the "unix" namespace for getting the number of hard links
741 * for a file.
742 *
743 * See the documentation for `lstat()`.
744 *
745 * This attribute is only available for UNIX file systems.
746 *
747 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
748 **/
749#define G_FILE_ATTRIBUTE_UNIX_NLINK "unix::nlink" /* uint32 */
750
751/**
752 * G_FILE_ATTRIBUTE_UNIX_UID:
753 *
754 * A key in the "unix" namespace for getting the user ID for the file.
755 *
756 * This attribute is only available for UNIX file systems.
757 *
758 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
759 **/
760#define G_FILE_ATTRIBUTE_UNIX_UID "unix::uid" /* uint32 */
761
762/**
763 * G_FILE_ATTRIBUTE_UNIX_GID:
764 *
765 * A key in the "unix" namespace for getting the group ID for the file.
766 *
767 * This attribute is only available for UNIX file systems.
768 *
769 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
770 **/
771#define G_FILE_ATTRIBUTE_UNIX_GID "unix::gid" /* uint32 */
772
773/**
774 * G_FILE_ATTRIBUTE_UNIX_RDEV:
775 *
776 * A key in the "unix" namespace for getting the device ID for the file
777 * (if it is a special file).
778 *
779 * See the documentation for `lstat()`.
780 *
781 * This attribute is only available for UNIX file systems.
782 *
783 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
784 **/
785#define G_FILE_ATTRIBUTE_UNIX_RDEV "unix::rdev" /* uint32 */
786
787/**
788 * G_FILE_ATTRIBUTE_UNIX_BLOCK_SIZE:
789 *
790 * A key in the "unix" namespace for getting the block size for the file
791 * system.
792 *
793 * This attribute is only available for UNIX file systems.
794 *
795 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
796 **/
797#define G_FILE_ATTRIBUTE_UNIX_BLOCK_SIZE "unix::block-size" /* uint32 */
798
799/**
800 * G_FILE_ATTRIBUTE_UNIX_BLOCKS:
801 *
802 * A key in the "unix" namespace for getting the number of blocks allocated
803 * for the file.
804 *
805 * This attribute is only available for UNIX file systems.
806 *
807 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
808 **/
809#define G_FILE_ATTRIBUTE_UNIX_BLOCKS "unix::blocks" /* uint64 */
810
811/**
812 * G_FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT:
813 *
814 * A key in the "unix" namespace for checking if the file represents a
815 * UNIX mount point.
816 *
817 * This attribute is %TRUE if the file is a UNIX mount point.
818 *
819 * Since 2.58, `/` is considered to be a mount point.
820 *
821 * This attribute is only available for UNIX file systems.
822 *
823 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
824 **/
825#define G_FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT "unix::is-mountpoint" /* boolean */
826
827/* DOS specific attributes */
828
829/**
830 * G_FILE_ATTRIBUTE_DOS_IS_ARCHIVE:
831 *
832 * A key in the "dos" namespace for checking if the file's archive flag
833 * is set.
834 *
835 * This attribute is %TRUE if the archive flag is set.
836 *
837 * This attribute is only available for DOS file systems.
838 *
839 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
840 **/
841#define G_FILE_ATTRIBUTE_DOS_IS_ARCHIVE "dos::is-archive" /* boolean */
842
843/**
844 * G_FILE_ATTRIBUTE_DOS_IS_SYSTEM:
845 *
846 * A key in the "dos" namespace for checking if the file's backup flag
847 * is set.
848 *
849 * This attribute is %TRUE if the backup flag is set.
850 *
851 * This attribute is only available for DOS file systems.
852 *
853 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
854 **/
855#define G_FILE_ATTRIBUTE_DOS_IS_SYSTEM "dos::is-system" /* boolean */
856
857/**
858 * G_FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT:
859 *
860 * A key in the "dos" namespace for checking if the file is a NTFS mount point
861 * (a volume mount or a junction point).
862 *
863 * This attribute is %TRUE if file is a reparse point of type
864 * [IO_REPARSE_TAG_MOUNT_POINT](https://msdn.microsoft.com/en-us/library/dd541667.aspx).
865 *
866 * This attribute is only available for DOS file systems.
867 *
868 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
869 *
870 * Since: 2.60
871 **/
872#define G_FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT "dos::is-mountpoint" /* boolean */
873
874/**
875 * G_FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG:
876 *
877 * A key in the "dos" namespace for getting the file NTFS reparse tag.
878 *
879 * This value is 0 for files that are not reparse points.
880 *
881 * See the [Reparse Tags](https://msdn.microsoft.com/en-us/library/dd541667.aspx)
882 * page for possible reparse tag values.
883 *
884 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
885 *
886 * Since: 2.60
887 **/
888#define G_FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG "dos::reparse-point-tag" /* uint32 */
889
890/* Owner attributes */
891
892/**
893 * G_FILE_ATTRIBUTE_OWNER_USER:
894 *
895 * A key in the "owner" namespace for getting the user name of the
896 * file's owner.
897 *
898 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
899 **/
900#define G_FILE_ATTRIBUTE_OWNER_USER "owner::user" /* string */
901
902/**
903 * G_FILE_ATTRIBUTE_OWNER_USER_REAL:
904 *
905 * A key in the "owner" namespace for getting the real name of the
906 * user that owns the file.
907 *
908 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
909 **/
910#define G_FILE_ATTRIBUTE_OWNER_USER_REAL "owner::user-real" /* string */
911
912/**
913 * G_FILE_ATTRIBUTE_OWNER_GROUP:
914 *
915 * A key in the "owner" namespace for getting the file owner's group.
916 *
917 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
918 **/
919#define G_FILE_ATTRIBUTE_OWNER_GROUP "owner::group" /* string */
920
921/* Thumbnails */
922
923/**
924 * G_FILE_ATTRIBUTE_THUMBNAIL_PATH:
925 *
926 * A key in the "thumbnail" namespace for getting the path to the thumbnail
927 * image with the biggest size available.
928 *
929 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
930 **/
931#define G_FILE_ATTRIBUTE_THUMBNAIL_PATH "thumbnail::path" /* bytestring */
932/**
933 * G_FILE_ATTRIBUTE_THUMBNAILING_FAILED:
934 *
935 * A key in the "thumbnail" namespace for checking if thumbnailing failed.
936 *
937 * This attribute is %TRUE if thumbnailing failed.
938 *
939 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
940 **/
941#define G_FILE_ATTRIBUTE_THUMBNAILING_FAILED "thumbnail::failed" /* boolean */
942/**
943 * G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID:
944 *
945 * A key in the "thumbnail" namespace for checking whether the thumbnail is outdated.
946 *
947 * This attribute is %TRUE if the thumbnail is up-to-date with the file it represents,
948 * and %FALSE if the file has been modified since the thumbnail was generated.
949 *
950 * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED is %TRUE and this attribute is %FALSE,
951 * it indicates that thumbnailing may be attempted again and may succeed.
952 *
953 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
954 *
955 * Since: 2.40
956 */
957#define G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID "thumbnail::is-valid" /* boolean */
958
959/**
960 * G_FILE_ATTRIBUTE_THUMBNAIL_PATH_NORMAL:
961 *
962 * A key in the "thumbnail" namespace for getting the path to the normal
963 * thumbnail image.
964 *
965 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
966 *
967 * Since: 2.76
968 */
969#define G_FILE_ATTRIBUTE_THUMBNAIL_PATH_NORMAL "thumbnail::path-normal" /* bytestring */
970/**
971 * G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL:
972 *
973 * A key in the "thumbnail" namespace for checking if thumbnailing failed
974 * for the normal image.
975 *
976 * This attribute is %TRUE if thumbnailing failed.
977 *
978 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
979 *
980 * Since: 2.76
981 */
982#define G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL "thumbnail::failed-normal" /* boolean */
983/**
984 * G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_NORMAL:
985 *
986 * A key in the "thumbnail" namespace for checking whether the normal
987 * thumbnail is outdated.
988 *
989 * This attribute is %TRUE if the normal thumbnail is up-to-date with the file
990 * it represents, and %FALSE if the file has been modified since the thumbnail
991 * was generated.
992 *
993 * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL is %TRUE and this attribute
994 * is %FALSE, it indicates that thumbnailing may be attempted again and may
995 * succeed.
996 *
997 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
998 *
999 * Since: 2.76
1000 */
1001#define G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_NORMAL "thumbnail::is-valid-normal" /* boolean */
1002
1003/**
1004 * G_FILE_ATTRIBUTE_THUMBNAIL_PATH_LARGE:
1005 *
1006 * A key in the "thumbnail" namespace for getting the path to the large
1007 * thumbnail image.
1008 *
1009 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
1010 *
1011 * Since: 2.76
1012 */
1013#define G_FILE_ATTRIBUTE_THUMBNAIL_PATH_LARGE "thumbnail::path-large" /* bytestring */
1014/**
1015 * G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE:
1016 *
1017 * A key in the "thumbnail" namespace for checking if thumbnailing failed
1018 * for the large image.
1019 *
1020 * This attribute is %TRUE if thumbnailing failed.
1021 *
1022 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
1023 *
1024 * Since: 2.76
1025 */
1026#define G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE "thumbnail::failed-large" /* boolean */
1027/**
1028 * G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_LARGE:
1029 *
1030 * A key in the "thumbnail" namespace for checking whether the large
1031 * thumbnail is outdated.
1032 *
1033 * This attribute is %TRUE if the large thumbnail is up-to-date with the file
1034 * it represents, and %FALSE if the file has been modified since the thumbnail
1035 * was generated.
1036 *
1037 * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE is %TRUE and this attribute
1038 * is %FALSE, it indicates that thumbnailing may be attempted again and may
1039 * succeed.
1040 *
1041 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
1042 *
1043 * Since: 2.76
1044 */
1045#define G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_LARGE "thumbnail::is-valid-large" /* boolean */
1046
1047/**
1048 * G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XLARGE:
1049 *
1050 * A key in the "thumbnail" namespace for getting the path to the x-large
1051 * thumbnail image.
1052 *
1053 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
1054 *
1055 * Since: 2.76
1056 */
1057#define G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XLARGE "thumbnail::path-xlarge" /* bytestring */
1058/**
1059 * G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE:
1060 *
1061 * A key in the "thumbnail" namespace for checking if thumbnailing failed
1062 * for the x-large image.
1063 *
1064 * This attribute is %TRUE if thumbnailing failed.
1065 *
1066 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
1067 *
1068 * Since: 2.76
1069 */
1070#define G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE "thumbnail::failed-xlarge" /* boolean */
1071/**
1072 * G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XLARGE:
1073 *
1074 * A key in the "thumbnail" namespace for checking whether the x-large
1075 * thumbnail is outdated.
1076 *
1077 * This attribute is %TRUE if the x-large thumbnail is up-to-date with the file
1078 * it represents, and %FALSE if the file has been modified since the thumbnail
1079 * was generated.
1080 *
1081 * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE is %TRUE and this attribute
1082 * is %FALSE, it indicates that thumbnailing may be attempted again and may
1083 * succeed.
1084 *
1085 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
1086 *
1087 * Since: 2.76
1088 */
1089#define G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XLARGE "thumbnail::is-valid-xlarge" /* boolean */
1090
1091/**
1092 * G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XXLARGE:
1093 *
1094 * A key in the "thumbnail" namespace for getting the path to the xx-large
1095 * thumbnail image.
1096 *
1097 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
1098 *
1099 * Since: 2.76
1100 */
1101#define G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XXLARGE "thumbnail::path-xxlarge" /* bytestring */
1102/**
1103 * G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XXLARGE:
1104 *
1105 * A key in the "thumbnail" namespace for checking if thumbnailing failed
1106 * for the xx-large image.
1107 *
1108 * This attribute is %TRUE if thumbnailing failed.
1109 *
1110 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
1111 *
1112 * Since: 2.76
1113 */
1114#define G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XXLARGE "thumbnail::failed-xxlarge" /* boolean */
1115/**
1116 * G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XXLARGE:
1117 *
1118 * A key in the "thumbnail" namespace for checking whether the xx-large
1119 * thumbnail is outdated.
1120 *
1121 * This attribute is %TRUE if the x-large thumbnail is up-to-date with the file
1122 * it represents, and %FALSE if the file has been modified since the thumbnail
1123 * was generated.
1124 *
1125 * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XXLARGE is %TRUE and this attribute
1126 * is %FALSE, it indicates that thumbnailing may be attempted again and may
1127 * succeed.
1128 *
1129 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
1130 *
1131 * Since: 2.76
1132 */
1133#define G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XXLARGE "thumbnail::is-valid-xxlarge" /* boolean */
1134
1135/* Preview */
1136
1137/**
1138 * G_FILE_ATTRIBUTE_PREVIEW_ICON:
1139 *
1140 * A key in the "preview" namespace for getting a #GIcon that can be
1141 * used to get preview of the file.
1142 *
1143 * For example, it may be a low resolution thumbnail without metadata.
1144 *
1145 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_OBJECT.
1146 *
1147 * The value for this key should contain a #GIcon.
1148 *
1149 * Since: 2.20
1150 **/
1151#define G_FILE_ATTRIBUTE_PREVIEW_ICON "preview::icon" /* object (GIcon) */
1152
1153/* File system info (for g_file_get_filesystem_info) */
1154
1155/**
1156 * G_FILE_ATTRIBUTE_FILESYSTEM_SIZE:
1157 *
1158 * A key in the "filesystem" namespace for getting the total size (in
1159 * bytes) of the file system, used in g_file_query_filesystem_info().
1160 *
1161 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
1162 **/
1163#define G_FILE_ATTRIBUTE_FILESYSTEM_SIZE "filesystem::size" /* uint64 */
1164
1165/**
1166 * G_FILE_ATTRIBUTE_FILESYSTEM_FREE:
1167 *
1168 * A key in the "filesystem" namespace for getting the number of bytes
1169 * of free space left on the file system.
1170 *
1171 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
1172 **/
1173#define G_FILE_ATTRIBUTE_FILESYSTEM_FREE "filesystem::free" /* uint64 */
1174
1175/**
1176 * G_FILE_ATTRIBUTE_FILESYSTEM_USED:
1177 *
1178 * A key in the "filesystem" namespace for getting the number of bytes
1179 * used by data on the file system.
1180 *
1181 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
1182 *
1183 * Since: 2.32
1184 */
1185#define G_FILE_ATTRIBUTE_FILESYSTEM_USED "filesystem::used" /* uint64 */
1186
1187/**
1188 * G_FILE_ATTRIBUTE_FILESYSTEM_TYPE:
1189 *
1190 * A key in the "filesystem" namespace for getting the file system's type.
1191 *
1192 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
1193 **/
1194#define G_FILE_ATTRIBUTE_FILESYSTEM_TYPE "filesystem::type" /* string */
1195
1196/**
1197 * G_FILE_ATTRIBUTE_FILESYSTEM_READONLY:
1198 *
1199 * A key in the "filesystem" namespace for checking if the file system
1200 * is read only.
1201 *
1202 * Is set to %TRUE if the file system is read only.
1203 *
1204 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
1205 **/
1206#define G_FILE_ATTRIBUTE_FILESYSTEM_READONLY "filesystem::readonly" /* boolean */
1207
1208/**
1209 * G_FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW:
1210 *
1211 * A key in the "filesystem" namespace for hinting a file manager
1212 * application whether it should preview (e.g. thumbnail) files on the
1213 * file system.
1214 *
1215 * The value for this key contain a #GFilesystemPreviewType.
1216 **/
1217#define G_FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW "filesystem::use-preview" /* uint32 (GFilesystemPreviewType) */
1218
1219/**
1220 * G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE:
1221 *
1222 * A key in the "filesystem" namespace for checking if the file system
1223 * is remote.
1224 *
1225 * Is set to %TRUE if the file system is remote.
1226 *
1227 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
1228 **/
1229#define G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE "filesystem::remote" /* boolean */
1230
1231/**
1232 * G_FILE_ATTRIBUTE_GVFS_BACKEND:
1233 *
1234 * A key in the "gvfs" namespace that gets the name of the current
1235 * GVFS backend in use.
1236 *
1237 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
1238 **/
1239#define G_FILE_ATTRIBUTE_GVFS_BACKEND "gvfs::backend" /* string */
1240
1241/**
1242 * G_FILE_ATTRIBUTE_SELINUX_CONTEXT:
1243 *
1244 * A key in the "selinux" namespace for getting the file's SELinux
1245 * context.
1246 *
1247 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
1248 *
1249 * Note that this attribute is only available if GLib has been built
1250 * with SELinux support.
1251 **/
1252#define G_FILE_ATTRIBUTE_SELINUX_CONTEXT "selinux::context" /* string */
1253
1254/**
1255 * G_FILE_ATTRIBUTE_TRASH_ITEM_COUNT:
1256 *
1257 * A key in the "trash" namespace for getting the number of (toplevel) items
1258 * that are present in the `trash:///` folder.
1259 *
1260 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
1261 **/
1262#define G_FILE_ATTRIBUTE_TRASH_ITEM_COUNT "trash::item-count" /* uint32 */
1263
1264/**
1265 * G_FILE_ATTRIBUTE_TRASH_ORIG_PATH:
1266 *
1267 * A key in the "trash" namespace for getting the original path of a file
1268 * inside the `trash:///` folder before it was trashed.
1269 *
1270 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
1271 *
1272 * Since: 2.24
1273 **/
1274#define G_FILE_ATTRIBUTE_TRASH_ORIG_PATH "trash::orig-path" /* byte string */
1275
1276/**
1277 * G_FILE_ATTRIBUTE_TRASH_DELETION_DATE:
1278 *
1279 * A key in the "trash" namespace for getting the deletion date and time
1280 * of a file inside the `trash:///` folder.
1281 *
1282 * The format of the returned string is `YYYY-MM-DDThh:mm:ss`.
1283 *
1284 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
1285 *
1286 * Since: 2.24
1287 **/
1288#define G_FILE_ATTRIBUTE_TRASH_DELETION_DATE "trash::deletion-date" /* string */
1289
1290/**
1291 * G_FILE_ATTRIBUTE_RECENT_MODIFIED:
1292 *
1293 * A key in the "recent" namespace for getting time, when the metadata for the
1294 * file in `recent:///` was last changed.
1295 *
1296 * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_INT64.
1297 *
1298 * Since: 2.52
1299 **/
1300#define G_FILE_ATTRIBUTE_RECENT_MODIFIED "recent::modified" /* int64 (time_t) */
1301
1302GIO_AVAILABLE_IN_ALL
1303GType g_file_info_get_type (void) G_GNUC_CONST;
1304
1305GIO_AVAILABLE_IN_ALL
1306GFileInfo * g_file_info_new (void);
1307GIO_AVAILABLE_IN_ALL
1308GFileInfo * g_file_info_dup (GFileInfo *other);
1309GIO_AVAILABLE_IN_ALL
1310void g_file_info_copy_into (GFileInfo *src_info,
1311 GFileInfo *dest_info);
1312GIO_AVAILABLE_IN_ALL
1313gboolean g_file_info_has_attribute (GFileInfo *info,
1314 const char *attribute);
1315GIO_AVAILABLE_IN_ALL
1316gboolean g_file_info_has_namespace (GFileInfo *info,
1317 const char *name_space);
1318GIO_AVAILABLE_IN_ALL
1319char ** g_file_info_list_attributes (GFileInfo *info,
1320 const char *name_space);
1321GIO_AVAILABLE_IN_ALL
1322gboolean g_file_info_get_attribute_data (GFileInfo *info,
1323 const char *attribute,
1324 GFileAttributeType *type,
1325 gpointer *value_pp,
1326 GFileAttributeStatus *status);
1327GIO_AVAILABLE_IN_ALL
1328GFileAttributeType g_file_info_get_attribute_type (GFileInfo *info,
1329 const char *attribute);
1330GIO_AVAILABLE_IN_ALL
1331void g_file_info_remove_attribute (GFileInfo *info,
1332 const char *attribute);
1333GIO_AVAILABLE_IN_ALL
1334GFileAttributeStatus g_file_info_get_attribute_status (GFileInfo *info,
1335 const char *attribute);
1336GIO_AVAILABLE_IN_ALL
1337gboolean g_file_info_set_attribute_status (GFileInfo *info,
1338 const char *attribute,
1339 GFileAttributeStatus status);
1340GIO_AVAILABLE_IN_ALL
1341char * g_file_info_get_attribute_as_string (GFileInfo *info,
1342 const char *attribute);
1343GIO_AVAILABLE_IN_ALL
1344const char * g_file_info_get_attribute_string (GFileInfo *info,
1345 const char *attribute);
1346GIO_AVAILABLE_IN_ALL
1347const char * g_file_info_get_attribute_byte_string (GFileInfo *info,
1348 const char *attribute);
1349GIO_AVAILABLE_IN_ALL
1350gboolean g_file_info_get_attribute_boolean (GFileInfo *info,
1351 const char *attribute);
1352GIO_AVAILABLE_IN_ALL
1353guint32 g_file_info_get_attribute_uint32 (GFileInfo *info,
1354 const char *attribute);
1355GIO_AVAILABLE_IN_ALL
1356gint32 g_file_info_get_attribute_int32 (GFileInfo *info,
1357 const char *attribute);
1358GIO_AVAILABLE_IN_ALL
1359guint64 g_file_info_get_attribute_uint64 (GFileInfo *info,
1360 const char *attribute);
1361GIO_AVAILABLE_IN_ALL
1362gint64 g_file_info_get_attribute_int64 (GFileInfo *info,
1363 const char *attribute);
1364GIO_AVAILABLE_IN_ALL
1365GObject * g_file_info_get_attribute_object (GFileInfo *info,
1366 const char *attribute);
1367GIO_AVAILABLE_IN_ALL
1368char ** g_file_info_get_attribute_stringv (GFileInfo *info,
1369 const char *attribute);
1370GIO_AVAILABLE_IN_2_78
1371const char * g_file_info_get_attribute_file_path (GFileInfo *info,
1372 const char *attribute);
1373
1374GIO_AVAILABLE_IN_ALL
1375void g_file_info_set_attribute (GFileInfo *info,
1376 const char *attribute,
1377 GFileAttributeType type,
1378 gpointer value_p);
1379GIO_AVAILABLE_IN_ALL
1380void g_file_info_set_attribute_string (GFileInfo *info,
1381 const char *attribute,
1382 const char *attr_value);
1383GIO_AVAILABLE_IN_ALL
1384void g_file_info_set_attribute_byte_string (GFileInfo *info,
1385 const char *attribute,
1386 const char *attr_value);
1387GIO_AVAILABLE_IN_ALL
1388void g_file_info_set_attribute_boolean (GFileInfo *info,
1389 const char *attribute,
1390 gboolean attr_value);
1391GIO_AVAILABLE_IN_ALL
1392void g_file_info_set_attribute_uint32 (GFileInfo *info,
1393 const char *attribute,
1394 guint32 attr_value);
1395GIO_AVAILABLE_IN_ALL
1396void g_file_info_set_attribute_int32 (GFileInfo *info,
1397 const char *attribute,
1398 gint32 attr_value);
1399GIO_AVAILABLE_IN_ALL
1400void g_file_info_set_attribute_uint64 (GFileInfo *info,
1401 const char *attribute,
1402 guint64 attr_value);
1403GIO_AVAILABLE_IN_ALL
1404void g_file_info_set_attribute_int64 (GFileInfo *info,
1405 const char *attribute,
1406 gint64 attr_value);
1407GIO_AVAILABLE_IN_ALL
1408void g_file_info_set_attribute_object (GFileInfo *info,
1409 const char *attribute,
1410 GObject *attr_value);
1411GIO_AVAILABLE_IN_ALL
1412void g_file_info_set_attribute_stringv (GFileInfo *info,
1413 const char *attribute,
1414 char **attr_value);
1415GIO_AVAILABLE_IN_2_78
1416void g_file_info_set_attribute_file_path (GFileInfo *info,
1417 const char *attribute,
1418 const char *attr_value);
1419
1420GIO_AVAILABLE_IN_ALL
1421void g_file_info_clear_status (GFileInfo *info);
1422
1423/* Helper getters: */
1424GIO_AVAILABLE_IN_2_36
1425GDateTime * g_file_info_get_deletion_date (GFileInfo *info);
1426GIO_AVAILABLE_IN_ALL
1427GFileType g_file_info_get_file_type (GFileInfo *info);
1428GIO_AVAILABLE_IN_ALL
1429gboolean g_file_info_get_is_hidden (GFileInfo *info);
1430GIO_AVAILABLE_IN_ALL
1431gboolean g_file_info_get_is_backup (GFileInfo *info);
1432GIO_AVAILABLE_IN_ALL
1433gboolean g_file_info_get_is_symlink (GFileInfo *info);
1434GIO_AVAILABLE_IN_ALL
1435const char * g_file_info_get_name (GFileInfo *info);
1436GIO_AVAILABLE_IN_ALL
1437const char * g_file_info_get_display_name (GFileInfo *info);
1438GIO_AVAILABLE_IN_ALL
1439const char * g_file_info_get_edit_name (GFileInfo *info);
1440GIO_AVAILABLE_IN_ALL
1441GIcon * g_file_info_get_icon (GFileInfo *info);
1442GIO_AVAILABLE_IN_ALL
1443GIcon * g_file_info_get_symbolic_icon (GFileInfo *info);
1444GIO_AVAILABLE_IN_ALL
1445const char * g_file_info_get_content_type (GFileInfo *info);
1446GIO_AVAILABLE_IN_ALL
1447goffset g_file_info_get_size (GFileInfo *info);
1448G_GNUC_BEGIN_IGNORE_DEPRECATIONS
1449GIO_DEPRECATED_IN_2_62_FOR(g_file_info_get_modification_date_time)
1450void g_file_info_get_modification_time (GFileInfo *info,
1451 GTimeVal *result);
1452G_GNUC_END_IGNORE_DEPRECATIONS
1453GIO_AVAILABLE_IN_2_62
1454GDateTime * g_file_info_get_modification_date_time (GFileInfo *info);
1455GIO_AVAILABLE_IN_2_70
1456GDateTime * g_file_info_get_access_date_time (GFileInfo *info);
1457GIO_AVAILABLE_IN_2_70
1458GDateTime * g_file_info_get_creation_date_time (GFileInfo *info);
1459GIO_AVAILABLE_IN_ALL
1460const char * g_file_info_get_symlink_target (GFileInfo *info);
1461GIO_AVAILABLE_IN_ALL
1462const char * g_file_info_get_etag (GFileInfo *info);
1463GIO_AVAILABLE_IN_ALL
1464gint32 g_file_info_get_sort_order (GFileInfo *info);
1465
1466GIO_AVAILABLE_IN_ALL
1467void g_file_info_set_attribute_mask (GFileInfo *info,
1468 GFileAttributeMatcher *mask);
1469GIO_AVAILABLE_IN_ALL
1470void g_file_info_unset_attribute_mask (GFileInfo *info);
1471
1472/* Helper setters: */
1473GIO_AVAILABLE_IN_ALL
1474void g_file_info_set_file_type (GFileInfo *info,
1475 GFileType type);
1476GIO_AVAILABLE_IN_ALL
1477void g_file_info_set_is_hidden (GFileInfo *info,
1478 gboolean is_hidden);
1479GIO_AVAILABLE_IN_ALL
1480void g_file_info_set_is_symlink (GFileInfo *info,
1481 gboolean is_symlink);
1482GIO_AVAILABLE_IN_ALL
1483void g_file_info_set_name (GFileInfo *info,
1484 const char *name);
1485GIO_AVAILABLE_IN_ALL
1486void g_file_info_set_display_name (GFileInfo *info,
1487 const char *display_name);
1488GIO_AVAILABLE_IN_ALL
1489void g_file_info_set_edit_name (GFileInfo *info,
1490 const char *edit_name);
1491GIO_AVAILABLE_IN_ALL
1492void g_file_info_set_icon (GFileInfo *info,
1493 GIcon *icon);
1494GIO_AVAILABLE_IN_ALL
1495void g_file_info_set_symbolic_icon (GFileInfo *info,
1496 GIcon *icon);
1497GIO_AVAILABLE_IN_ALL
1498void g_file_info_set_content_type (GFileInfo *info,
1499 const char *content_type);
1500GIO_AVAILABLE_IN_ALL
1501void g_file_info_set_size (GFileInfo *info,
1502 goffset size);
1503G_GNUC_BEGIN_IGNORE_DEPRECATIONS
1504GIO_DEPRECATED_IN_2_62_FOR(g_file_info_set_modification_date_time)
1505void g_file_info_set_modification_time (GFileInfo *info,
1506 GTimeVal *mtime);
1507G_GNUC_END_IGNORE_DEPRECATIONS
1508GIO_AVAILABLE_IN_2_62
1509void g_file_info_set_modification_date_time (GFileInfo *info,
1510 GDateTime *mtime);
1511GIO_AVAILABLE_IN_2_70
1512void g_file_info_set_access_date_time (GFileInfo *info,
1513 GDateTime *atime);
1514GIO_AVAILABLE_IN_2_70
1515void g_file_info_set_creation_date_time (GFileInfo *info,
1516 GDateTime *creation_time);
1517GIO_AVAILABLE_IN_ALL
1518void g_file_info_set_symlink_target (GFileInfo *info,
1519 const char *symlink_target);
1520GIO_AVAILABLE_IN_ALL
1521void g_file_info_set_sort_order (GFileInfo *info,
1522 gint32 sort_order);
1523
1524#define G_TYPE_FILE_ATTRIBUTE_MATCHER (g_file_attribute_matcher_get_type ())
1525GIO_AVAILABLE_IN_ALL
1526GType g_file_attribute_matcher_get_type (void) G_GNUC_CONST;
1527
1528GIO_AVAILABLE_IN_ALL
1529GFileAttributeMatcher *g_file_attribute_matcher_new (const char *attributes);
1530GIO_AVAILABLE_IN_ALL
1531GFileAttributeMatcher *g_file_attribute_matcher_ref (GFileAttributeMatcher *matcher);
1532GIO_AVAILABLE_IN_ALL
1533void g_file_attribute_matcher_unref (GFileAttributeMatcher *matcher);
1534GIO_AVAILABLE_IN_ALL
1535GFileAttributeMatcher *g_file_attribute_matcher_subtract (GFileAttributeMatcher *matcher,
1536 GFileAttributeMatcher *subtract);
1537GIO_AVAILABLE_IN_ALL
1538gboolean g_file_attribute_matcher_matches (GFileAttributeMatcher *matcher,
1539 const char *attribute);
1540GIO_AVAILABLE_IN_ALL
1541gboolean g_file_attribute_matcher_matches_only (GFileAttributeMatcher *matcher,
1542 const char *attribute);
1543GIO_AVAILABLE_IN_ALL
1544gboolean g_file_attribute_matcher_enumerate_namespace (GFileAttributeMatcher *matcher,
1545 const char *ns);
1546GIO_AVAILABLE_IN_ALL
1547const char * g_file_attribute_matcher_enumerate_next (GFileAttributeMatcher *matcher);
1548GIO_AVAILABLE_IN_2_32
1549char * g_file_attribute_matcher_to_string (GFileAttributeMatcher *matcher);
1550
1551G_END_DECLS
1552
1553#endif /* __G_FILE_INFO_H__ */
1554