public async bool replace_contents_async (uint8[] contents, string? etag, bool make_backup, FileCreateFlags flags, Cancellable? cancellable = null, out string? new_etag) throws Error

Starts an asynchronous replacement of this with the given contents of contents.length bytes.

etag will replace the document's current entity tag.

When this operation has completed, callback will be called with user_user data, and the operation can be finalized with replace_contents_async.end.

If cancellable is not null, then the operation can be cancelled by triggering the cancellable object from another thread. If the operation was cancelled, the error g_io_error_cancelled will be returned.

If make_backup is true, this function will attempt to make a backup of this.

Note that no copy of contents will be made, so it must stay valid until callback is called. See replace_contents_bytes_async for a Bytes version that will automatically hold a reference to the contents (without copying) for the duration of the call.

Example: Replace file-content (uint8[]-based), async:

public static int main (string[] args) {
if (args.length != 2) {
print ("%s FILE\n", args[0]);
return 0;

MainLoop loop = new MainLoop ();

File file = File.new_for_commandline_arg (args[1]);
file.replace_contents_async.begin ("My info\n".data, null, false, FileCreateFlags.NONE, null, (obj, res) => {
try {
file.replace_contents_async.end (res, null);
} catch (Error e) {
print ("Error: %s\n", e.message);

loop.quit ();
}); ();
return 0;

valac --pkg gio-2.0 GLib.File.replace_contents_async.vala



input File


string of contents to replace the file with


a new entity tag for the this, or null


true if a backup should be created


a set of FileCreateFlags


optional Cancellable object, null to ignore


a TaskReadyCallback to call when the request is satisfied


the length of contents in bytes


the data to pass to callback function