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

source code of include/glib-2.0/gio/gfileinfo.h