moveFile 函数 (winbase.h)
移动现有文件或目录,包括其子级。
若要指定如何移动文件,请使用 MoveFileEx 或 MoveFileWithProgress 函数。
若要以事务处理操作的形式执行此操作,请使用 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 |