moveFile 函数 (winbase.h)

移动现有文件或目录,包括其子级。

若要指定如何移动文件,请使用 MoveFileExMoveFileWithProgress 函数。

若要以事务处理操作的形式执行此操作,请使用 MoveFileTransacted 函数。

语法

BOOL MoveFile(
  [in] LPCTSTR lpExistingFileName,
  [in] LPCTSTR lpNewFileName
);

参数

[in] lpExistingFileName

本地计算机上文件或目录的当前名称。

默认情况下,名称限制为MAX_PATH个字符。 若要将此限制扩展到 32,767 个宽字符,请在路径前面添加“\\?\”。 有关详细信息,请参阅命名文件、路径和命名空间

提示

从 Windows 10 版本 1607 开始,可以选择删除MAX_PATH限制,而无需在前面添加“\\?\”。 有关详细信息,请参阅 命名文件、路径和命名空间 的“最大路径长度限制”部分。

[in] lpNewFileName

文件或目录的新名称。 新名称不得已存在。 新文件可能位于不同的文件系统或驱动器上。 新目录必须位于同一驱动器上。

默认情况下,名称限制为MAX_PATH个字符。 若要将此限制扩展到 32,767 个宽字符,请在路径前面添加“\\?\”。 有关详细信息,请参阅命名文件、路径和命名空间

提示

从 Windows 10 版本 1607 开始,可以选择删除MAX_PATH限制,而无需在前面添加“\\?\”。 有关详细信息,请参阅 命名文件、路径和命名空间 的“最大路径长度限制”部分。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

MoveFile 函数将移动 (重命名) 文件或目录 (包括其子级) 在同一目录中或跨目录。 需要注意的是,当目标位于其他卷上时,移动目录时 ,MoveFile 函数将失败。

如果文件跨卷移动, MoveFile 不会随文件一起移动安全描述符。 将为文件分配目标目录中的默认安全描述符。

MoveFile 函数将其操作与链接跟踪服务协调,因此可以在移动链接源时对其进行跟踪。

在 Windows 8 和 Windows Server 2012 中,以下技术支持此函数。

技术 支持
(SMB) 3.0 协议的服务器消息块
SMB 3.0 透明故障转移 (TFO) 查看注释
具有横向扩展文件共享的 SMB 3.0 (SO) 查看注释
群集共享卷文件系统 (CsvFS)
弹性文件系统 (ReFS)
 

SMB 3.0 不支持重命名具有连续可用性功能的文件共享上的备用数据流。

要求

   
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 winbase.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

CopyFile

文件管理功能

MoveFileEx

MoveFileTransacted

MoveFileWithProgress