1 /* GIO - GLib Input, Output and Streaming Library
3 * Copyright (C) 2006-2007 Red Hat, Inc.
5 * SPDX-License-Identifier: LGPL-2.1-or-later
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General
18 * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
20 * Author: Alexander Larsson <alexl@redhat.com>
26 #if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION)
27 #error "Only <gio/gio.h> can be included directly."
30 #include <gio/giotypes.h>
34 #define G_TYPE_FILE (g_file_get_type ())
35 #define G_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_FILE, GFile))
36 #define G_IS_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_FILE))
37 #define G_FILE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_FILE, GFileIface))
43 * A handle to an object implementing the #GFileIface interface.
44 * Generally stores a location within the file system. Handles do not
45 * necessarily represent files or directories that currently exist.
47 typedef struct _GFile GFile; /* Dummy typedef */
49 typedef struct _GFileIface GFileIface;
54 * @g_iface: The parent interface.
55 * @dup: Duplicates a #GFile.
56 * @hash: Creates a hash of a #GFile.
57 * @equal: Checks equality of two given #GFiles.
58 * @is_native: Checks to see if a file is native to the system.
59 * @has_uri_scheme: Checks to see if a #GFile has a given URI scheme.
60 * @get_uri_scheme: Gets the URI scheme for a #GFile.
61 * @get_basename: Gets the basename for a given #GFile.
62 * @get_path: Gets the current path within a #GFile.
63 * @get_uri: Gets a URI for the path within a #GFile.
64 * @get_parse_name: Gets the parsed name for the #GFile.
65 * @get_parent: Gets the parent directory for the #GFile.
66 * @prefix_matches: Checks whether a #GFile contains a specified file.
67 * @get_relative_path: Gets the path for a #GFile relative to a given path.
68 * @resolve_relative_path: Resolves a relative path for a #GFile to an absolute path.
69 * @get_child_for_display_name: Gets the child #GFile for a given display name.
70 * @enumerate_children: Gets a #GFileEnumerator with the children of a #GFile.
71 * @enumerate_children_async: Asynchronously gets a #GFileEnumerator with the children of a #GFile.
72 * @enumerate_children_finish: Finishes asynchronously enumerating the children.
73 * @query_info: Gets the #GFileInfo for a #GFile.
74 * @query_info_async: Asynchronously gets the #GFileInfo for a #GFile.
75 * @query_info_finish: Finishes an asynchronous query info operation.
76 * @query_filesystem_info: Gets a #GFileInfo for the file system #GFile is on.
77 * @query_filesystem_info_async: Asynchronously gets a #GFileInfo for the file system #GFile is on.
78 * @query_filesystem_info_finish: Finishes asynchronously getting the file system info.
79 * @find_enclosing_mount: Gets a #GMount for the #GFile.
80 * @find_enclosing_mount_async: Asynchronously gets the #GMount for a #GFile.
81 * @find_enclosing_mount_finish: Finishes asynchronously getting the volume.
82 * @set_display_name: Sets the display name for a #GFile.
83 * @set_display_name_async: Asynchronously sets a #GFile's display name.
84 * @set_display_name_finish: Finishes asynchronously setting a #GFile's display name.
85 * @query_settable_attributes: Returns a list of #GFileAttributeInfos that can be set.
86 * @_query_settable_attributes_async: Asynchronously gets a list of #GFileAttributeInfos that can be set.
87 * @_query_settable_attributes_finish: Finishes asynchronously querying settable attributes.
88 * @query_writable_namespaces: Returns a list of #GFileAttributeInfo namespaces that are writable.
89 * @_query_writable_namespaces_async: Asynchronously gets a list of #GFileAttributeInfo namespaces that are writable.
90 * @_query_writable_namespaces_finish: Finishes asynchronously querying the writable namespaces.
91 * @set_attribute: Sets a #GFileAttributeInfo.
92 * @set_attributes_from_info: Sets a #GFileAttributeInfo with information from a #GFileInfo.
93 * @set_attributes_async: Asynchronously sets a file's attributes.
94 * @set_attributes_finish: Finishes setting a file's attributes asynchronously.
95 * @read_fn: Reads a file asynchronously.
96 * @read_async: Asynchronously reads a file.
97 * @read_finish: Finishes asynchronously reading a file.
98 * @append_to: Writes to the end of a file.
99 * @append_to_async: Asynchronously writes to the end of a file.
100 * @append_to_finish: Finishes an asynchronous file append operation.
101 * @create: Creates a new file.
102 * @create_async: Asynchronously creates a file.
103 * @create_finish: Finishes asynchronously creating a file.
104 * @replace: Replaces the contents of a file.
105 * @replace_async: Asynchronously replaces the contents of a file.
106 * @replace_finish: Finishes asynchronously replacing a file.
107 * @delete_file: Deletes a file.
108 * @delete_file_async: Asynchronously deletes a file.
109 * @delete_file_finish: Finishes an asynchronous delete.
110 * @trash: Sends a #GFile to the Trash location.
111 * @trash_async: Asynchronously sends a #GFile to the Trash location.
112 * @trash_finish: Finishes an asynchronous file trashing operation.
113 * @make_directory: Makes a directory.
114 * @make_directory_async: Asynchronously makes a directory.
115 * @make_directory_finish: Finishes making a directory asynchronously.
116 * @make_symbolic_link: (nullable): Makes a symbolic link. %NULL if symbolic
117 * links are unsupported.
118 * @make_symbolic_link_async: Asynchronously makes a symbolic link
119 * @make_symbolic_link_finish: Finishes making a symbolic link asynchronously.
120 * @copy: (nullable): Copies a file. %NULL if copying is unsupported, which will
121 * cause `GFile` to use a fallback copy method where it reads from the
122 * source and writes to the destination.
123 * @copy_async: Asynchronously copies a file.
124 * @copy_finish: Finishes an asynchronous copy operation.
125 * @move: Moves a file.
126 * @move_async: Asynchronously moves a file. Since: 2.72
127 * @move_finish: Finishes an asynchronous move operation. Since: 2.72
128 * @mount_mountable: Mounts a mountable object.
129 * @mount_mountable_finish: Finishes a mounting operation.
130 * @unmount_mountable: Unmounts a mountable object.
131 * @unmount_mountable_finish: Finishes an unmount operation.
132 * @eject_mountable: Ejects a mountable.
133 * @eject_mountable_finish: Finishes an eject operation.
134 * @mount_enclosing_volume: Mounts a specified location.
135 * @mount_enclosing_volume_finish: Finishes mounting a specified location.
136 * @monitor_dir: Creates a #GFileMonitor for the location.
137 * @monitor_file: Creates a #GFileMonitor for the location.
138 * @open_readwrite: Open file read/write. Since 2.22.
139 * @open_readwrite_async: Asynchronously opens file read/write. Since 2.22.
140 * @open_readwrite_finish: Finishes an asynchronous open read/write. Since 2.22.
141 * @create_readwrite: Creates file read/write. Since 2.22.
142 * @create_readwrite_async: Asynchronously creates file read/write. Since 2.22.
143 * @create_readwrite_finish: Finishes an asynchronous creates read/write. Since 2.22.
144 * @replace_readwrite: Replaces file read/write. Since 2.22.
145 * @replace_readwrite_async: Asynchronously replaces file read/write. Since 2.22.
146 * @replace_readwrite_finish: Finishes an asynchronous replace read/write. Since 2.22.
147 * @start_mountable: Starts a mountable object. Since 2.22.
148 * @start_mountable_finish: Finishes a start operation. Since 2.22.
149 * @stop_mountable: Stops a mountable. Since 2.22.
150 * @stop_mountable_finish: Finishes a stop operation. Since 2.22.
151 * @supports_thread_contexts: a boolean that indicates whether the #GFile implementation supports thread-default contexts. Since 2.22.
152 * @unmount_mountable_with_operation: Unmounts a mountable object using a #GMountOperation. Since 2.22.
153 * @unmount_mountable_with_operation_finish: Finishes an unmount operation using a #GMountOperation. Since 2.22.
154 * @eject_mountable_with_operation: Ejects a mountable object using a #GMountOperation. Since 2.22.
155 * @eject_mountable_with_operation_finish: Finishes an eject operation using a #GMountOperation. Since 2.22.
156 * @poll_mountable: Polls a mountable object for media changes. Since 2.22.
157 * @poll_mountable_finish: Finishes a poll operation for media changes. Since 2.22.
158 * @measure_disk_usage: Recursively measures the disk usage of @file. Since 2.38
159 * @measure_disk_usage_async: Asynchronously recursively measures the disk usage of @file. Since 2.38
160 * @measure_disk_usage_finish: Finishes an asynchronous recursive measurement of the disk usage of @file. Since 2.38
162 * An interface for writing VFS file handles.
166 GTypeInterface g_iface;
170 GFile * (* dup) (GFile *file);
171 guint (* hash) (GFile *file);
172 gboolean (* equal) (GFile *file1,
174 gboolean (* is_native) (GFile *file);
175 gboolean (* has_uri_scheme) (GFile *file,
176 const char *uri_scheme);
177 char * (* get_uri_scheme) (GFile *file);
178 char * (* get_basename) (GFile *file);
179 char * (* get_path) (GFile *file);
180 char * (* get_uri) (GFile *file);
181 char * (* get_parse_name) (GFile *file);
182 GFile * (* get_parent) (GFile *file);
183 gboolean (* prefix_matches) (GFile *prefix,
185 char * (* get_relative_path) (GFile *parent,
187 GFile * (* resolve_relative_path) (GFile *file,
188 const char *relative_path);
189 GFile * (* get_child_for_display_name) (GFile *file,
190 const char *display_name,
193 GFileEnumerator * (* enumerate_children) (GFile *file,
194 const char *attributes,
195 GFileQueryInfoFlags flags,
196 GCancellable *cancellable,
198 void (* enumerate_children_async) (GFile *file,
199 const char *attributes,
200 GFileQueryInfoFlags flags,
202 GCancellable *cancellable,
203 GAsyncReadyCallback callback,
205 GFileEnumerator * (* enumerate_children_finish) (GFile *file,
209 GFileInfo * (* query_info) (GFile *file,
210 const char *attributes,
211 GFileQueryInfoFlags flags,
212 GCancellable *cancellable,
214 void (* query_info_async) (GFile *file,
215 const char *attributes,
216 GFileQueryInfoFlags flags,
218 GCancellable *cancellable,
219 GAsyncReadyCallback callback,
221 GFileInfo * (* query_info_finish) (GFile *file,
225 GFileInfo * (* query_filesystem_info) (GFile *file,
226 const char *attributes,
227 GCancellable *cancellable,
229 void (* query_filesystem_info_async) (GFile *file,
230 const char *attributes,
232 GCancellable *cancellable,
233 GAsyncReadyCallback callback,
235 GFileInfo * (* query_filesystem_info_finish)(GFile *file,
239 GMount * (* find_enclosing_mount) (GFile *file,
240 GCancellable *cancellable,
242 void (* find_enclosing_mount_async) (GFile *file,
244 GCancellable *cancellable,
245 GAsyncReadyCallback callback,
247 GMount * (* find_enclosing_mount_finish) (GFile *file,
251 GFile * (* set_display_name) (GFile *file,
252 const char *display_name,
253 GCancellable *cancellable,
255 void (* set_display_name_async) (GFile *file,
256 const char *display_name,
258 GCancellable *cancellable,
259 GAsyncReadyCallback callback,
261 GFile * (* set_display_name_finish) (GFile *file,
265 GFileAttributeInfoList * (* query_settable_attributes) (GFile *file,
266 GCancellable *cancellable,
268 void (* _query_settable_attributes_async) (void);
269 void (* _query_settable_attributes_finish) (void);
271 GFileAttributeInfoList * (* query_writable_namespaces) (GFile *file,
272 GCancellable *cancellable,
274 void (* _query_writable_namespaces_async) (void);
275 void (* _query_writable_namespaces_finish) (void);
277 gboolean (* set_attribute) (GFile *file,
278 const char *attribute,
279 GFileAttributeType type,
281 GFileQueryInfoFlags flags,
282 GCancellable *cancellable,
284 gboolean (* set_attributes_from_info) (GFile *file,
286 GFileQueryInfoFlags flags,
287 GCancellable *cancellable,
289 void (* set_attributes_async) (GFile *file,
291 GFileQueryInfoFlags flags,
293 GCancellable *cancellable,
294 GAsyncReadyCallback callback,
296 gboolean (* set_attributes_finish) (GFile *file,
297 GAsyncResult *result,
301 GFileInputStream * (* read_fn) (GFile *file,
302 GCancellable *cancellable,
304 void (* read_async) (GFile *file,
306 GCancellable *cancellable,
307 GAsyncReadyCallback callback,
309 GFileInputStream * (* read_finish) (GFile *file,
313 GFileOutputStream * (* append_to) (GFile *file,
314 GFileCreateFlags flags,
315 GCancellable *cancellable,
317 void (* append_to_async) (GFile *file,
318 GFileCreateFlags flags,
320 GCancellable *cancellable,
321 GAsyncReadyCallback callback,
323 GFileOutputStream * (* append_to_finish) (GFile *file,
327 GFileOutputStream * (* create) (GFile *file,
328 GFileCreateFlags flags,
329 GCancellable *cancellable,
331 void (* create_async) (GFile *file,
332 GFileCreateFlags flags,
334 GCancellable *cancellable,
335 GAsyncReadyCallback callback,
337 GFileOutputStream * (* create_finish) (GFile *file,
341 GFileOutputStream * (* replace) (GFile *file,
343 gboolean make_backup,
344 GFileCreateFlags flags,
345 GCancellable *cancellable,
347 void (* replace_async) (GFile *file,
349 gboolean make_backup,
350 GFileCreateFlags flags,
352 GCancellable *cancellable,
353 GAsyncReadyCallback callback,
355 GFileOutputStream * (* replace_finish) (GFile *file,
359 gboolean (* delete_file) (GFile *file,
360 GCancellable *cancellable,
362 void (* delete_file_async) (GFile *file,
364 GCancellable *cancellable,
365 GAsyncReadyCallback callback,
367 gboolean (* delete_file_finish) (GFile *file,
368 GAsyncResult *result,
371 gboolean (* trash) (GFile *file,
372 GCancellable *cancellable,
374 void (* trash_async) (GFile *file,
376 GCancellable *cancellable,
377 GAsyncReadyCallback callback,
379 gboolean (* trash_finish) (GFile *file,
380 GAsyncResult *result,
383 gboolean (* make_directory) (GFile *file,
384 GCancellable *cancellable,
386 void (* make_directory_async) (GFile *file,
388 GCancellable *cancellable,
389 GAsyncReadyCallback callback,
391 gboolean (* make_directory_finish) (GFile *file,
392 GAsyncResult *result,
395 gboolean (* make_symbolic_link) (GFile *file,
396 const char *symlink_value,
397 GCancellable *cancellable,
399 void (* make_symbolic_link_async) (GFile *file,
400 const char *symlink_value,
402 GCancellable *cancellable,
403 GAsyncReadyCallback callback,
405 gboolean (* make_symbolic_link_finish) (GFile *file,
406 GAsyncResult *result,
409 gboolean (* copy) (GFile *source,
411 GFileCopyFlags flags,
412 GCancellable *cancellable,
413 GFileProgressCallback progress_callback,
414 gpointer progress_callback_data,
416 void (* copy_async) (GFile *source,
418 GFileCopyFlags flags,
420 GCancellable *cancellable,
421 GFileProgressCallback progress_callback,
422 gpointer progress_callback_data,
423 GAsyncReadyCallback callback,
425 gboolean (* copy_finish) (GFile *file,
429 gboolean (* move) (GFile *source,
431 GFileCopyFlags flags,
432 GCancellable *cancellable,
433 GFileProgressCallback progress_callback,
434 gpointer progress_callback_data,
436 void (* move_async) (GFile *source,
438 GFileCopyFlags flags,
440 GCancellable *cancellable,
441 GFileProgressCallback progress_callback,
442 gpointer progress_callback_data,
443 GAsyncReadyCallback callback,
445 gboolean (* move_finish) (GFile *file,
446 GAsyncResult *result,
449 void (* mount_mountable) (GFile *file,
450 GMountMountFlags flags,
451 GMountOperation *mount_operation,
452 GCancellable *cancellable,
453 GAsyncReadyCallback callback,
455 GFile * (* mount_mountable_finish) (GFile *file,
456 GAsyncResult *result,
459 void (* unmount_mountable) (GFile *file,
460 GMountUnmountFlags flags,
461 GCancellable *cancellable,
462 GAsyncReadyCallback callback,
464 gboolean (* unmount_mountable_finish) (GFile *file,
465 GAsyncResult *result,
468 void (* eject_mountable) (GFile *file,
469 GMountUnmountFlags flags,
470 GCancellable *cancellable,
471 GAsyncReadyCallback callback,
473 gboolean (* eject_mountable_finish) (GFile *file,
474 GAsyncResult *result,
477 void (* mount_enclosing_volume) (GFile *location,
478 GMountMountFlags flags,
479 GMountOperation *mount_operation,
480 GCancellable *cancellable,
481 GAsyncReadyCallback callback,
483 gboolean (* mount_enclosing_volume_finish) (GFile *location,
484 GAsyncResult *result,
487 GFileMonitor * (* monitor_dir) (GFile *file,
488 GFileMonitorFlags flags,
489 GCancellable *cancellable,
491 GFileMonitor * (* monitor_file) (GFile *file,
492 GFileMonitorFlags flags,
493 GCancellable *cancellable,
496 GFileIOStream * (* open_readwrite) (GFile *file,
497 GCancellable *cancellable,
499 void (* open_readwrite_async) (GFile *file,
501 GCancellable *cancellable,
502 GAsyncReadyCallback callback,
504 GFileIOStream * (* open_readwrite_finish) (GFile *file,
507 GFileIOStream * (* create_readwrite) (GFile *file,
508 GFileCreateFlags flags,
509 GCancellable *cancellable,
511 void (* create_readwrite_async) (GFile *file,
512 GFileCreateFlags flags,
514 GCancellable *cancellable,
515 GAsyncReadyCallback callback,
517 GFileIOStream * (* create_readwrite_finish) (GFile *file,
520 GFileIOStream * (* replace_readwrite) (GFile *file,
522 gboolean make_backup,
523 GFileCreateFlags flags,
524 GCancellable *cancellable,
526 void (* replace_readwrite_async) (GFile *file,
528 gboolean make_backup,
529 GFileCreateFlags flags,
531 GCancellable *cancellable,
532 GAsyncReadyCallback callback,
534 GFileIOStream * (* replace_readwrite_finish) (GFile *file,
538 void (* start_mountable) (GFile *file,
539 GDriveStartFlags flags,
540 GMountOperation *start_operation,
541 GCancellable *cancellable,
542 GAsyncReadyCallback callback,
544 gboolean (* start_mountable_finish) (GFile *file,
545 GAsyncResult *result,
548 void (* stop_mountable) (GFile *file,
549 GMountUnmountFlags flags,
550 GMountOperation *mount_operation,
551 GCancellable *cancellable,
552 GAsyncReadyCallback callback,
554 gboolean (* stop_mountable_finish) (GFile *file,
555 GAsyncResult *result,
558 gboolean supports_thread_contexts;
560 void (* unmount_mountable_with_operation) (GFile *file,
561 GMountUnmountFlags flags,
562 GMountOperation *mount_operation,
563 GCancellable *cancellable,
564 GAsyncReadyCallback callback,
566 gboolean (* unmount_mountable_with_operation_finish) (GFile *file,
567 GAsyncResult *result,
570 void (* eject_mountable_with_operation) (GFile *file,
571 GMountUnmountFlags flags,
572 GMountOperation *mount_operation,
573 GCancellable *cancellable,
574 GAsyncReadyCallback callback,
576 gboolean (* eject_mountable_with_operation_finish) (GFile *file,
577 GAsyncResult *result,
580 void (* poll_mountable) (GFile *file,
581 GCancellable *cancellable,
582 GAsyncReadyCallback callback,
584 gboolean (* poll_mountable_finish) (GFile *file,
585 GAsyncResult *result,
588 gboolean (* measure_disk_usage) (GFile *file,
589 GFileMeasureFlags flags,
590 GCancellable *cancellable,
591 GFileMeasureProgressCallback progress_callback,
592 gpointer progress_data,
597 void (* measure_disk_usage_async) (GFile *file,
598 GFileMeasureFlags flags,
600 GCancellable *cancellable,
601 GFileMeasureProgressCallback progress_callback,
602 gpointer progress_data,
603 GAsyncReadyCallback callback,
605 gboolean (* measure_disk_usage_finish) (GFile *file,
606 GAsyncResult *result,
614 GType g_file_get_type (void) G_GNUC_CONST;
617 GFile * g_file_new_for_path (const char *path);
619 GFile * g_file_new_for_uri (const char *uri);
621 GFile * g_file_new_for_commandline_arg (const char *arg);
622 GIO_AVAILABLE_IN_2_36
623 GFile * g_file_new_for_commandline_arg_and_cwd (const gchar *arg,
625 GIO_AVAILABLE_IN_2_32
626 GFile * g_file_new_tmp (const char *tmpl,
627 GFileIOStream **iostream,
629 GIO_AVAILABLE_IN_2_74
630 void g_file_new_tmp_async (const char *tmpl,
632 GCancellable *cancellable,
633 GAsyncReadyCallback callback,
635 GIO_AVAILABLE_IN_2_74
636 GFile * g_file_new_tmp_finish (GAsyncResult *result,
637 GFileIOStream **iostream,
639 GIO_AVAILABLE_IN_2_74
640 void g_file_new_tmp_dir_async (const char *tmpl,
642 GCancellable *cancellable,
643 GAsyncReadyCallback callback,
645 GIO_AVAILABLE_IN_2_74
646 GFile * g_file_new_tmp_dir_finish (GAsyncResult *result,
649 GFile * g_file_parse_name (const char *parse_name);
650 GIO_AVAILABLE_IN_2_56
651 GFile * g_file_new_build_filename (const gchar *first_element,
652 ...) G_GNUC_NULL_TERMINATED;
653 GIO_AVAILABLE_IN_2_78
654 GFile * g_file_new_build_filenamev (const gchar * const *args);
656 GFile * g_file_dup (GFile *file);
658 guint g_file_hash (gconstpointer file);
660 gboolean g_file_equal (GFile *file1,
663 char * g_file_get_basename (GFile *file);
665 char * g_file_get_path (GFile *file);
666 GIO_AVAILABLE_IN_2_56
667 const char * g_file_peek_path (GFile *file);
669 char * g_file_get_uri (GFile *file);
671 char * g_file_get_parse_name (GFile *file);
673 GFile * g_file_get_parent (GFile *file);
675 gboolean g_file_has_parent (GFile *file,
678 GFile * g_file_get_child (GFile *file,
681 GFile * g_file_get_child_for_display_name (GFile *file,
682 const char *display_name,
685 gboolean g_file_has_prefix (GFile *file,
688 char * g_file_get_relative_path (GFile *parent,
691 GFile * g_file_resolve_relative_path (GFile *file,
692 const char *relative_path);
694 gboolean g_file_is_native (GFile *file);
696 gboolean g_file_has_uri_scheme (GFile *file,
697 const char *uri_scheme);
699 char * g_file_get_uri_scheme (GFile *file);
701 GFileInputStream * g_file_read (GFile *file,
702 GCancellable *cancellable,
705 void g_file_read_async (GFile *file,
707 GCancellable *cancellable,
708 GAsyncReadyCallback callback,
711 GFileInputStream * g_file_read_finish (GFile *file,
715 GFileOutputStream * g_file_append_to (GFile *file,
716 GFileCreateFlags flags,
717 GCancellable *cancellable,
720 GFileOutputStream * g_file_create (GFile *file,
721 GFileCreateFlags flags,
722 GCancellable *cancellable,
725 GFileOutputStream * g_file_replace (GFile *file,
727 gboolean make_backup,
728 GFileCreateFlags flags,
729 GCancellable *cancellable,
732 void g_file_append_to_async (GFile *file,
733 GFileCreateFlags flags,
735 GCancellable *cancellable,
736 GAsyncReadyCallback callback,
739 GFileOutputStream * g_file_append_to_finish (GFile *file,
743 void g_file_create_async (GFile *file,
744 GFileCreateFlags flags,
746 GCancellable *cancellable,
747 GAsyncReadyCallback callback,
750 GFileOutputStream * g_file_create_finish (GFile *file,
754 void g_file_replace_async (GFile *file,
756 gboolean make_backup,
757 GFileCreateFlags flags,
759 GCancellable *cancellable,
760 GAsyncReadyCallback callback,
763 GFileOutputStream * g_file_replace_finish (GFile *file,
767 GFileIOStream * g_file_open_readwrite (GFile *file,
768 GCancellable *cancellable,
771 void g_file_open_readwrite_async (GFile *file,
773 GCancellable *cancellable,
774 GAsyncReadyCallback callback,
777 GFileIOStream * g_file_open_readwrite_finish (GFile *file,
781 GFileIOStream * g_file_create_readwrite (GFile *file,
782 GFileCreateFlags flags,
783 GCancellable *cancellable,
786 void g_file_create_readwrite_async (GFile *file,
787 GFileCreateFlags flags,
789 GCancellable *cancellable,
790 GAsyncReadyCallback callback,
793 GFileIOStream * g_file_create_readwrite_finish (GFile *file,
797 GFileIOStream * g_file_replace_readwrite (GFile *file,
799 gboolean make_backup,
800 GFileCreateFlags flags,
801 GCancellable *cancellable,
804 void g_file_replace_readwrite_async (GFile *file,
806 gboolean make_backup,
807 GFileCreateFlags flags,
809 GCancellable *cancellable,
810 GAsyncReadyCallback callback,
813 GFileIOStream * g_file_replace_readwrite_finish (GFile *file,
817 gboolean g_file_query_exists (GFile *file,
818 GCancellable *cancellable);
820 GFileType g_file_query_file_type (GFile *file,
821 GFileQueryInfoFlags flags,
822 GCancellable *cancellable);
824 GFileInfo * g_file_query_info (GFile *file,
825 const char *attributes,
826 GFileQueryInfoFlags flags,
827 GCancellable *cancellable,
830 void g_file_query_info_async (GFile *file,
831 const char *attributes,
832 GFileQueryInfoFlags flags,
834 GCancellable *cancellable,
835 GAsyncReadyCallback callback,
838 GFileInfo * g_file_query_info_finish (GFile *file,
842 GFileInfo * g_file_query_filesystem_info (GFile *file,
843 const char *attributes,
844 GCancellable *cancellable,
847 void g_file_query_filesystem_info_async (GFile *file,
848 const char *attributes,
850 GCancellable *cancellable,
851 GAsyncReadyCallback callback,
854 GFileInfo * g_file_query_filesystem_info_finish (GFile *file,
858 GMount * g_file_find_enclosing_mount (GFile *file,
859 GCancellable *cancellable,
862 void g_file_find_enclosing_mount_async (GFile *file,
864 GCancellable *cancellable,
865 GAsyncReadyCallback callback,
868 GMount * g_file_find_enclosing_mount_finish (GFile *file,
872 GFileEnumerator * g_file_enumerate_children (GFile *file,
873 const char *attributes,
874 GFileQueryInfoFlags flags,
875 GCancellable *cancellable,
878 void g_file_enumerate_children_async (GFile *file,
879 const char *attributes,
880 GFileQueryInfoFlags flags,
882 GCancellable *cancellable,
883 GAsyncReadyCallback callback,
886 GFileEnumerator * g_file_enumerate_children_finish (GFile *file,
890 GFile * g_file_set_display_name (GFile *file,
891 const char *display_name,
892 GCancellable *cancellable,
895 void g_file_set_display_name_async (GFile *file,
896 const char *display_name,
898 GCancellable *cancellable,
899 GAsyncReadyCallback callback,
902 GFile * g_file_set_display_name_finish (GFile *file,
906 gboolean g_file_delete (GFile *file,
907 GCancellable *cancellable,
910 GIO_AVAILABLE_IN_2_34
911 void g_file_delete_async (GFile *file,
913 GCancellable *cancellable,
914 GAsyncReadyCallback callback,
917 GIO_AVAILABLE_IN_2_34
918 gboolean g_file_delete_finish (GFile *file,
919 GAsyncResult *result,
923 gboolean g_file_trash (GFile *file,
924 GCancellable *cancellable,
927 GIO_AVAILABLE_IN_2_38
928 void g_file_trash_async (GFile *file,
930 GCancellable *cancellable,
931 GAsyncReadyCallback callback,
934 GIO_AVAILABLE_IN_2_38
935 gboolean g_file_trash_finish (GFile *file,
936 GAsyncResult *result,
940 gboolean g_file_copy (GFile *source,
942 GFileCopyFlags flags,
943 GCancellable *cancellable,
944 GFileProgressCallback progress_callback,
945 gpointer progress_callback_data,
948 void g_file_copy_async (GFile *source,
950 GFileCopyFlags flags,
952 GCancellable *cancellable,
953 GFileProgressCallback progress_callback,
954 gpointer progress_callback_data,
955 GAsyncReadyCallback callback,
958 gboolean g_file_copy_finish (GFile *file,
962 gboolean g_file_move (GFile *source,
964 GFileCopyFlags flags,
965 GCancellable *cancellable,
966 GFileProgressCallback progress_callback,
967 gpointer progress_callback_data,
969 GIO_AVAILABLE_IN_2_72
970 void g_file_move_async (GFile *source,
972 GFileCopyFlags flags,
974 GCancellable *cancellable,
975 GFileProgressCallback progress_callback,
976 gpointer progress_callback_data,
977 GAsyncReadyCallback callback,
979 GIO_AVAILABLE_IN_2_72
980 gboolean g_file_move_finish (GFile *file,
981 GAsyncResult *result,
984 gboolean g_file_make_directory (GFile *file,
985 GCancellable *cancellable,
987 GIO_AVAILABLE_IN_2_38
988 void g_file_make_directory_async (GFile *file,
990 GCancellable *cancellable,
991 GAsyncReadyCallback callback,
993 GIO_AVAILABLE_IN_2_38
994 gboolean g_file_make_directory_finish (GFile *file,
995 GAsyncResult *result,
999 gboolean g_file_make_directory_with_parents (GFile *file,
1000 GCancellable *cancellable,
1002 GIO_AVAILABLE_IN_ALL
1003 gboolean g_file_make_symbolic_link (GFile *file,
1004 const char *symlink_value,
1005 GCancellable *cancellable,
1007 GIO_AVAILABLE_IN_2_74
1008 void g_file_make_symbolic_link_async (GFile *file,
1009 const char *symlink_value,
1011 GCancellable *cancellable,
1012 GAsyncReadyCallback callback,
1013 gpointer user_data);
1014 GIO_AVAILABLE_IN_2_74
1015 gboolean g_file_make_symbolic_link_finish (GFile *file,
1016 GAsyncResult *result,
1018 GIO_AVAILABLE_IN_ALL
1019 GFileAttributeInfoList *g_file_query_settable_attributes (GFile *file,
1020 GCancellable *cancellable,
1022 GIO_AVAILABLE_IN_ALL
1023 GFileAttributeInfoList *g_file_query_writable_namespaces (GFile *file,
1024 GCancellable *cancellable,
1026 GIO_AVAILABLE_IN_ALL
1027 gboolean g_file_set_attribute (GFile *file,
1028 const char *attribute,
1029 GFileAttributeType type,
1031 GFileQueryInfoFlags flags,
1032 GCancellable *cancellable,
1034 GIO_AVAILABLE_IN_ALL
1035 gboolean g_file_set_attributes_from_info (GFile *file,
1037 GFileQueryInfoFlags flags,
1038 GCancellable *cancellable,
1040 GIO_AVAILABLE_IN_ALL
1041 void g_file_set_attributes_async (GFile *file,
1043 GFileQueryInfoFlags flags,
1045 GCancellable *cancellable,
1046 GAsyncReadyCallback callback,
1047 gpointer user_data);
1048 GIO_AVAILABLE_IN_ALL
1049 gboolean g_file_set_attributes_finish (GFile *file,
1050 GAsyncResult *result,
1053 GIO_AVAILABLE_IN_ALL
1054 gboolean g_file_set_attribute_string (GFile *file,
1055 const char *attribute,
1057 GFileQueryInfoFlags flags,
1058 GCancellable *cancellable,
1060 GIO_AVAILABLE_IN_ALL
1061 gboolean g_file_set_attribute_byte_string (GFile *file,
1062 const char *attribute,
1064 GFileQueryInfoFlags flags,
1065 GCancellable *cancellable,
1067 GIO_AVAILABLE_IN_ALL
1068 gboolean g_file_set_attribute_uint32 (GFile *file,
1069 const char *attribute,
1071 GFileQueryInfoFlags flags,
1072 GCancellable *cancellable,
1074 GIO_AVAILABLE_IN_ALL
1075 gboolean g_file_set_attribute_int32 (GFile *file,
1076 const char *attribute,
1078 GFileQueryInfoFlags flags,
1079 GCancellable *cancellable,
1081 GIO_AVAILABLE_IN_ALL
1082 gboolean g_file_set_attribute_uint64 (GFile *file,
1083 const char *attribute,
1085 GFileQueryInfoFlags flags,
1086 GCancellable *cancellable,
1088 GIO_AVAILABLE_IN_ALL
1089 gboolean g_file_set_attribute_int64 (GFile *file,
1090 const char *attribute,
1092 GFileQueryInfoFlags flags,
1093 GCancellable *cancellable,
1095 GIO_AVAILABLE_IN_ALL
1096 void g_file_mount_enclosing_volume (GFile *location,
1097 GMountMountFlags flags,
1098 GMountOperation *mount_operation,
1099 GCancellable *cancellable,
1100 GAsyncReadyCallback callback,
1101 gpointer user_data);
1102 GIO_AVAILABLE_IN_ALL
1103 gboolean g_file_mount_enclosing_volume_finish (GFile *location,
1104 GAsyncResult *result,
1106 GIO_AVAILABLE_IN_ALL
1107 void g_file_mount_mountable (GFile *file,
1108 GMountMountFlags flags,
1109 GMountOperation *mount_operation,
1110 GCancellable *cancellable,
1111 GAsyncReadyCallback callback,
1112 gpointer user_data);
1113 GIO_AVAILABLE_IN_ALL
1114 GFile * g_file_mount_mountable_finish (GFile *file,
1115 GAsyncResult *result,
1117 GIO_DEPRECATED_FOR(g_file_unmount_mountable_with_operation)
1118 void g_file_unmount_mountable (GFile *file,
1119 GMountUnmountFlags flags,
1120 GCancellable *cancellable,
1121 GAsyncReadyCallback callback,
1122 gpointer user_data);
1124 GIO_DEPRECATED_FOR(g_file_unmount_mountable_with_operation_finish)
1125 gboolean g_file_unmount_mountable_finish (GFile *file,
1126 GAsyncResult *result,
1128 GIO_AVAILABLE_IN_ALL
1129 void g_file_unmount_mountable_with_operation (GFile *file,
1130 GMountUnmountFlags flags,
1131 GMountOperation *mount_operation,
1132 GCancellable *cancellable,
1133 GAsyncReadyCallback callback,
1134 gpointer user_data);
1135 GIO_AVAILABLE_IN_ALL
1136 gboolean g_file_unmount_mountable_with_operation_finish (GFile *file,
1137 GAsyncResult *result,
1139 GIO_DEPRECATED_FOR(g_file_eject_mountable_with_operation)
1140 void g_file_eject_mountable (GFile *file,
1141 GMountUnmountFlags flags,
1142 GCancellable *cancellable,
1143 GAsyncReadyCallback callback,
1144 gpointer user_data);
1146 GIO_DEPRECATED_FOR(g_file_eject_mountable_with_operation_finish)
1147 gboolean g_file_eject_mountable_finish (GFile *file,
1148 GAsyncResult *result,
1150 GIO_AVAILABLE_IN_ALL
1151 void g_file_eject_mountable_with_operation (GFile *file,
1152 GMountUnmountFlags flags,
1153 GMountOperation *mount_operation,
1154 GCancellable *cancellable,
1155 GAsyncReadyCallback callback,
1156 gpointer user_data);
1157 GIO_AVAILABLE_IN_ALL
1158 gboolean g_file_eject_mountable_with_operation_finish (GFile *file,
1159 GAsyncResult *result,
1162 GIO_AVAILABLE_IN_2_68
1163 char * g_file_build_attribute_list_for_copy (GFile *file,
1164 GFileCopyFlags flags,
1165 GCancellable *cancellable,
1168 GIO_AVAILABLE_IN_ALL
1169 gboolean g_file_copy_attributes (GFile *source,
1171 GFileCopyFlags flags,
1172 GCancellable *cancellable,
1176 GIO_AVAILABLE_IN_ALL
1177 GFileMonitor* g_file_monitor_directory (GFile *file,
1178 GFileMonitorFlags flags,
1179 GCancellable *cancellable,
1181 GIO_AVAILABLE_IN_ALL
1182 GFileMonitor* g_file_monitor_file (GFile *file,
1183 GFileMonitorFlags flags,
1184 GCancellable *cancellable,
1186 GIO_AVAILABLE_IN_ALL
1187 GFileMonitor* g_file_monitor (GFile *file,
1188 GFileMonitorFlags flags,
1189 GCancellable *cancellable,
1192 GIO_AVAILABLE_IN_2_38
1193 gboolean g_file_measure_disk_usage (GFile *file,
1194 GFileMeasureFlags flags,
1195 GCancellable *cancellable,
1196 GFileMeasureProgressCallback progress_callback,
1197 gpointer progress_data,
1198 guint64 *disk_usage,
1203 GIO_AVAILABLE_IN_2_38
1204 void g_file_measure_disk_usage_async (GFile *file,
1205 GFileMeasureFlags flags,
1207 GCancellable *cancellable,
1208 GFileMeasureProgressCallback progress_callback,
1209 gpointer progress_data,
1210 GAsyncReadyCallback callback,
1211 gpointer user_data);
1213 GIO_AVAILABLE_IN_2_38
1214 gboolean g_file_measure_disk_usage_finish (GFile *file,
1215 GAsyncResult *result,
1216 guint64 *disk_usage,
1221 GIO_AVAILABLE_IN_ALL
1222 void g_file_start_mountable (GFile *file,
1223 GDriveStartFlags flags,
1224 GMountOperation *start_operation,
1225 GCancellable *cancellable,
1226 GAsyncReadyCallback callback,
1227 gpointer user_data);
1228 GIO_AVAILABLE_IN_ALL
1229 gboolean g_file_start_mountable_finish (GFile *file,
1230 GAsyncResult *result,
1232 GIO_AVAILABLE_IN_ALL
1233 void g_file_stop_mountable (GFile *file,
1234 GMountUnmountFlags flags,
1235 GMountOperation *mount_operation,
1236 GCancellable *cancellable,
1237 GAsyncReadyCallback callback,
1238 gpointer user_data);
1239 GIO_AVAILABLE_IN_ALL
1240 gboolean g_file_stop_mountable_finish (GFile *file,
1241 GAsyncResult *result,
1244 GIO_AVAILABLE_IN_ALL
1245 void g_file_poll_mountable (GFile *file,
1246 GCancellable *cancellable,
1247 GAsyncReadyCallback callback,
1248 gpointer user_data);
1249 GIO_AVAILABLE_IN_ALL
1250 gboolean g_file_poll_mountable_finish (GFile *file,
1251 GAsyncResult *result,
1256 GIO_AVAILABLE_IN_ALL
1257 GAppInfo *g_file_query_default_handler (GFile *file,
1258 GCancellable *cancellable,
1260 GIO_AVAILABLE_IN_2_60
1261 void g_file_query_default_handler_async (GFile *file,
1263 GCancellable *cancellable,
1264 GAsyncReadyCallback callback,
1265 gpointer user_data);
1266 GIO_AVAILABLE_IN_2_60
1267 GAppInfo *g_file_query_default_handler_finish (GFile *file,
1268 GAsyncResult *result,
1271 GIO_AVAILABLE_IN_ALL
1272 gboolean g_file_load_contents (GFile *file,
1273 GCancellable *cancellable,
1278 GIO_AVAILABLE_IN_ALL
1279 void g_file_load_contents_async (GFile *file,
1280 GCancellable *cancellable,
1281 GAsyncReadyCallback callback,
1282 gpointer user_data);
1283 GIO_AVAILABLE_IN_ALL
1284 gboolean g_file_load_contents_finish (GFile *file,
1290 GIO_AVAILABLE_IN_ALL
1291 void g_file_load_partial_contents_async (GFile *file,
1292 GCancellable *cancellable,
1293 GFileReadMoreCallback read_more_callback,
1294 GAsyncReadyCallback callback,
1295 gpointer user_data);
1296 GIO_AVAILABLE_IN_ALL
1297 gboolean g_file_load_partial_contents_finish (GFile *file,
1303 GIO_AVAILABLE_IN_ALL
1304 gboolean g_file_replace_contents (GFile *file,
1305 const char *contents,
1308 gboolean make_backup,
1309 GFileCreateFlags flags,
1311 GCancellable *cancellable,
1313 GIO_AVAILABLE_IN_ALL
1314 void g_file_replace_contents_async (GFile *file,
1315 const char *contents,
1318 gboolean make_backup,
1319 GFileCreateFlags flags,
1320 GCancellable *cancellable,
1321 GAsyncReadyCallback callback,
1322 gpointer user_data);
1323 GIO_AVAILABLE_IN_2_40
1324 void g_file_replace_contents_bytes_async (GFile *file,
1327 gboolean make_backup,
1328 GFileCreateFlags flags,
1329 GCancellable *cancellable,
1330 GAsyncReadyCallback callback,
1331 gpointer user_data);
1332 GIO_AVAILABLE_IN_ALL
1333 gboolean g_file_replace_contents_finish (GFile *file,
1338 GIO_AVAILABLE_IN_ALL
1339 gboolean g_file_supports_thread_contexts (GFile *file);
1341 GIO_AVAILABLE_IN_2_56
1342 GBytes *g_file_load_bytes (GFile *file,
1343 GCancellable *cancellable,
1346 GIO_AVAILABLE_IN_2_56
1347 void g_file_load_bytes_async (GFile *file,
1348 GCancellable *cancellable,
1349 GAsyncReadyCallback callback,
1350 gpointer user_data);
1351 GIO_AVAILABLE_IN_2_56
1352 GBytes *g_file_load_bytes_finish (GFile *file,
1353 GAsyncResult *result,
1359 #endif /* __G_FILE_H__ */