winbase.h (MoveFile 函式)
移動現有的檔案或目錄,包括其子系。
若要指定如何移動檔案,請使用 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 通訊協定 | Yes |
SMB 3.0 透明容錯移轉 (TFO) | 請參閱批註 |
具有向外延展檔案共用的 SMB 3.0 (SO) | 請參閱批註 |
叢集共用磁片區檔案系統 (CsvFS) | Yes |
彈性檔案系統 (ReFS) | Yes |
SMB 3.0 不支援在具有持續可用性功能的檔案共用上重新命名替代資料流程。
規格需求
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | winbase.h (包含 Windows.h) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |