方法
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
-
回调函数,用于进度信息,或者
NULL
如果不需要进度信息。该参数可以为 NULL
。 progress_callback_data
-
类型:
gpointer
传递给
progress_callback
的用户数据。该参数可以为 NULL
。数据由该方法调用者拥有。 error
-
类型:
GError **
用于可恢复错误的返回位置。
该参数可以为 NULL
。如果返回位置不是 NULL
,则必须将其初始化为NULL
的GError*
。如果没有错误,该方法将把参数初始化为 NULL
。在错误情况下,参数将被设置为一个新的 GError
分配;调用者将承担数据的所有权,并负责释放它。