共用方式為


NetDfsMove 函式 (lmdfs.h)

重新命名或移動 DFS 連結。

語法

NET_API_STATUS NET_API_FUNCTION NetDfsMove(
  [in] LPWSTR OldDfsEntryPath,
  [in] LPWSTR NewDfsEntryPath,
  [in] ULONG  Flags
);

參數

[in] OldDfsEntryPath

字串的指標,指定移動作業的來源路徑。 此值必須是 DFS 連結或 DFS 命名空間中任何 DFS 連結的路徑前置詞。

[in] NewDfsEntryPath

指定移動作業目的地路徑之字串的指標。 此值必須是相同 DFS 命名空間中的路徑或 DFS 連結。

[in] Flags

一組旗標,描述手機連結時要採取的動作。

DFS_MOVE_FLAG_REPLACE_IF_EXISTS (0x00000001)

如果目的地路徑已經是現有的 DFS 連結,請將它取代為移動作業的一部分。

傳回值

如果函式成功,傳回值會 NERR_Success

如果函式失敗,則傳回值是系統錯誤碼。 如需錯誤碼的清單,請參閱 系統錯誤碼

備註

NetDfsMove函式可方便將連結從舊名稱移至新的名稱。 在過去,必須執行刪除不正確或舊連結的非簡單動作,並建立新的連結,當連結具有大量目標或每個目標屬性時, (例如優先順序) 集時,這會變得麻煩。 系統管理員通常也會定期重新命名或手機連結。

提供給 NetDfsMove 的 DFS 路徑可以是實際的 DFS 連結,或只是 DFS 連結路徑前置詞。 不允許萬用字元,而且只能指定絕對路徑。 相對路徑和特殊路徑名稱語法 (,例如 「.」 或 「.」。不允許 ) 。

指定 DFS 連結路徑前置詞而不是完整的 DFS 路徑時,移動作業會在包含該前置詞的所有 DFS 連結上執行。 因此, 對 NetDfsMove 的單一呼叫可以「移動」多個連結。 不過,路徑前置詞必須解析為至少一個有效的 DFS 連結,否則移動作業將會失敗。

下列範例示範不同的移動作業和結果。

    • 舊路徑:\\MyDfsServer\MyDfsShare\dir1\dir2\link1
    • 新路徑:\\MyDfsServer\MyDfsShare\dir1\dir2\link2
    移動之後,\\MyDfsServer\MyDfsShare\dir1\dir2\link1 會取代為 \\MyDfsServer\MyDfsShare\dir1\dir2\link2。
    • 舊路徑:\\MyDfsServer\MyDfsShare\dir1\dir2\link1
    • 新路徑:\\MyDfsServer\MyDfsShare\dir3\dir4\dir5\link2
    移動之後,\\MyDfsServer\MyDfsShare\dir1\dir2\link1 會取代為 \\MyDfsServer\MyDfsShare\dir3\dir4\dir5\link2。 請注意,分葉和非分葉元件都已重新命名,而且新路徑中的元件數目已變更。
    • 舊路徑:\\MyDfsServer\MyDfsShare\dir1
    • 新路徑:\\MyDfsServer\MyDfsShare\dir3
    移動之後,前置詞為 \\MyDfsServer\MyDfsShare\dir1 的所有連結都會以 \\MyDfsServer\MyDfsShare\dir3 取代該前置詞。 因此,\\MyDfsServer\MyDfsShare\dir1\dir2\link1 和 \\MyDfsServer\MyDfsShare\dir1\dir2\link2 現在分別是 \\MyDfsServer\MyDfsShare\dir3\dir2\link1 和 \\MyDfsServer\MyDfsShare\dir3\dir2\link1。
    • 舊路徑:\\MyDfsServer\MyDfsShare\dir1
    • 新路徑:\\MyDfsServer\MyDfsShare
    移動之後,前置詞為 \\MyDfsServer\MyDfsShare\dir1 的所有連結都會以 \\MyDfsServer\MyDfsShare 取代該前置詞。 因此,\\MyDfsServer\MyDfsShare\dir1\dir2\link1 和 \\MyDfsServer\MyDfsShare\dir1\dir2\link2 現在分別是 \\MyDfsServer\MyDfsShare\dir2\link1 和 \\MyDfsServer\MyDfsShare\dir2\link1。
如果新路徑已經有現有的專案,則如果新路徑應該覆寫舊的路徑,則必須指定 DFS_MOVE_FLAG_REPLACE_IF_EXISTS 。 設定此旗標時,會刪除並取代新連結的碰撞路徑。 請注意,任何可能導致完全重迭的 DFS 連結都會失敗,不論是否指定 DFS_MOVE_FLAG_REPLACE_IF_EXISTS 。 例如:
  • 現有連結:\\MyDfsServer\MyDfsShare\dir1\link1、\\MyDfsServer\MyDfsShare\link3
  • 舊路徑:\\MyDfsServer\MyDfsShare\dir1
  • 新路徑:\\MyDfsServer\MyDfsShare\link3
如果允許移動作業成功,結果會是兩個完全重迭的連結:\\MyDfsServer\MyDfsShare\link3\link1 和 \\MyDfsServer\MyDfsShare\link3。 因此,移動作業必須失敗。

使用網域型 DFS 伺服器時,移動作業是不可部分完成的;也就是說,會執行整個作業或失敗。 不過,使用獨立 DFS 伺服器時,移動作業不保證是不可部分完成的。 在此情況下,失敗可能會導致部分完成的移動作業,而且會代表呼叫的應用程式進行清除。

移動作業成功時,保證已成功修改 DFS 中繼資料。 這不保證已在根目標上實際建立 DFS 連結,或可以在根目標儲存體上建立 DFS 連結。

需求

   
最低支援的用戶端 Windows Vista
最低支援的伺服器 Windows Server 2008、Windows Server 2008
目標平台 Windows
標頭 lmdfs.h (包括 LmDfs.h、Lm.h)
程式庫 Netapi32.lib
Dll Netapi32.dll

另請參閱

分散式檔案系統 (DFS) 函式

網路管理功能

網路管理概觀