方法

GioFilecopy

声明 [src]

gboolean
g_file_copy (
  GFile* source,
  GFile* destination,
  GFileCopyFlags flags,
  GCancellable* cancellable,
  GFileProgressCallback progress_callback,
  gpointer progress_callback_data,
  GError** error
)

描述 [src]

将文件 source 复制到由 destination 指定的位置。无法处理目录的递归复制。

如果指定了标志 G_FILE_COPY_OVERWRITE,则已存在的 destination 文件将被覆盖。

如果指定了标志 G_FILE_COPY_NOFOLLOW_SYMLINKS,则符号链接将被作为符号链接复制,否则将复制 source 符号链接的目标。

如果指定了标志 G_FILE_COPY_ALL_METADATA,则将复制所有可能的元数据,而不仅仅是默认子集(例如,不包括所有者,见 GFileInfo)。

如果 cancellable 不为 NULL,则可以从另一个线程触发可取消的对象来取消操作。如果操作被取消,将返回错误 G_IO_ERROR_CANCELLED

如果 progress_callback 不为 NULL,则可以通过将该值设置为 GFileProgressCallback 函数来监控操作。将传递 progress_callback_data 到该函数。保证在所有数据已传输后调用此回调,并提供在整个操作期间复制的字节数。

如果 source 文件不存在,则返回错误 G_IO_ERROR_NOT_FOUND,独立于 destination 的状态。

如果没有指定 G_FILE_COPY_OVERWRITE 且目标存在,则返回错误 G_IO_ERROR_EXISTS

如果尝试在目录上覆盖文件,将返回 G_IO_ERROR_IS_DIRECTORY 错误。如果尝试用目录覆盖目录,则返回 G_IO_ERROR_WOULD_MERGE 错误。

如果源是目录且目标不存在,或指定了 G_FILE_COPY_OVERWRITE 且目标是一个文件,则返回错误 G_IO_ERROR_WOULD_RECURSE

如果您对复制 GFile 对象本身(而非磁盘上的文件)感兴趣,请参阅 g_file_dup()。

参数

destination

类型: GFile

目标 GFile

数据由该方法调用者拥有。
flags

类型: GFileCopyFlags

一组 GFileCopyFlags

cancellable

类型: GCancellable

可选的 GCancellable 对象,NULL 表示忽略。

该参数可以为 NULL
数据由该方法调用者拥有。
progress_callback

类型: GFileProgressCallback

回调函数,用于进度信息,或者 NULL 如果不需要进度信息。

该参数可以为 NULL
progress_callback_data

类型: gpointer

传递给 progress_callback 的用户数据。

该参数可以为 NULL
数据由该方法调用者拥有。
error

类型: GError **

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

该参数可以为 NULL
如果返回位置不是 NULL,则必须将其初始化为 NULLGError*
如果没有错误,该方法将把参数初始化为 NULL
在错误情况下,参数将被设置为一个新的 GError 分配;调用者将承担数据的所有权,并负责释放它。

返回值

类型: gboolean

成功时返回 TRUE,否则返回 FALSE