方法

GioFilereplace_contents

声明 [源代码]

gboolean
g_file_replace_contents (
  GFile* file,
  const char* contents,
  gsize length,
  const char* etag,
  gboolean make_backup,
  GFileCreateFlags flags,
  char** new_etag,
  GCancellable* cancellable,
  GError** error
)

描述 [源代码]

用长度为《length》字节的《contents》内容替换《file》的内容。

如果指定了《etag》,任何现有文件必须具有该etag,否则将返回错误《G_IO_ERROR_WRONG_ETAG》。

如果《make_backup》是《TRUE》,则此函数将尝试备份《file》。内部它使用g_file_replace(),将尝试以最安全的方式替换文件内容。例如,当替换本地文件内容时使用原子重命名。

如果《cancellable》不是《NULL》,则可以通过在另一个线程中触发可取消的对象来取消操作。如果操作被取消,则返回错误《G_IO_ERROR_CANCELLED》。

返回的《new_etag》可以用来自证文件在下次保存时没有改变。

参数

contents

类型: 一个guint8数组

包含用于《file》的新内容的字符串。

数组的长度由《length》参数指定。
数据由方法调用者所有。
length

类型: gsize

《contents》的字节长度。

etag

类型: const char*

文档的旧实体标签,或《NULL》。

参数可以设置为《NULL》。
数据由方法调用者所有。
值是一个以NUL终止的UTF-8字符串。
make_backup

类型: gboolean

如果应该创建备份,《TRUE》。

flags

类型: GFileCreateFlags

一组《GFileCreateFlags》。

new_etag

类型: char**

指向文档的新的实体标签的位置。当不再需要时,应该使用《g_free()`》释放它,或《NULL》。

该参数将由函数设置。
该方法可以将参数设置為《NULL》。
参数可以设置为《NULL》。
方法的调用者拥有返回的数据,负责释放它。
值是一个以NUL终止的UTF-8字符串。
cancellable

类型: GCancellable

可选的《GCancellable》对象,《NULL`忽略。

参数可以设置为《NULL》。
数据由方法调用者所有。
error

类型: GError **

用于返回可恢复错误的返回位置。

参数可以设置为《NULL》。
如果返回位置不为《NULL》,则必须将其初始化为《NULL` GError*`。
如果不存在错误,则方法将留下初始化的参数为《NULL》。
在出错的情况下,参数将设置为一个新的《GError`;调用者将接管数据,并负责释放它。

返回值

类型: gboolean

成功时返回TRUE。如果发生错误,此函数将返回FALSE,并在存在的情况下适当地设置error