虚拟方法

GioFilemove

声明 [源]

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

描述 [源]

试图将文件或目录 source 移动到由 destination 指定的位置。如果支持本地移动操作,则使用该操作,否则使用复制加删除的备用方案。本地实现可能支持移动目录(例如在同一文件系统内的移动),但备用代码不支持。

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

如果 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 错误(如果本地移动操作不可用)。

参数

destination

类型: GFile

指向目标位置的 GFile

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

类型: GFileCopyFlags

GFileCopyFlags 的集合。

cancellable

类型: GCancellable

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

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

类型: GFileProgressCallback

用于更新的 GFileProgressCallback 函数。

progress_callback_data

类型: gpointer

回调函数的用户数据的指针。

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

类型: GError **

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

此参数可以为 NULL
如果返回位置不是 NULL,则必须将其初始化为 NULL GError*
如果无错误,虚拟函数将左初始化该参数为NULL
出错时,参数将被设置为一个新的GError分配;调用者将负责数据的所有权,并负责释放它。

返回值

类型: gboolean

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