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