winbase.h (MoveFile 函式)

移動現有的檔案或目錄,包括其子系。

若要指定如何移動檔案,請使用 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 通訊協定 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

另請參閱

CopyFile

檔案管理功能

MoveFileEx

MoveFileTransacted

MoveFileWithProgress