Função NetDfsMove (lmdfs.h)
Renomeia ou move um link do DFS.
Sintaxe
NET_API_STATUS NET_API_FUNCTION NetDfsMove(
[in] LPWSTR OldDfsEntryPath,
[in] LPWSTR NewDfsEntryPath,
[in] ULONG Flags
);
Parâmetros
[in] OldDfsEntryPath
Ponteiro para uma cadeia de caracteres que especifica o caminho de origem para a operação de movimentação. Esse valor deve ser um link dfs ou o prefixo de caminho de qualquer link dfs no namespace DFS.
[in] NewDfsEntryPath
Ponteiro para uma cadeia de caracteres que especifica o caminho de destino para a operação de movimentação. Esse valor deve ser um caminho ou um link dfs no mesmo namespace dfs.
[in] Flags
Um conjunto de sinalizadores que descrevem as ações a serem executadas ao mover o link.
DFS_MOVE_FLAG_REPLACE_IF_EXISTS (0x00000001)
Se o caminho de destino já for um link DFS existente, substitua-o como parte da operação de movimentação.
Valor retornado
Se a função for bem-sucedida, o valor retornado será NERR_Success.
Se a função falhar, o valor retornado será um código de erro do sistema. Para obter uma lista de códigos de erro, consulte Códigos de erro do sistema.
Comentários
A função NetDfsMove move convenientemente um link de um nome antigo para um novo. No passado, era necessário executar a ação não trivial de excluir um link incorreto ou antigo e criar um novo, o que se torna complicado quando o link tem um número significativo de destinos ou tem propriedades por destino (como prioridade). Também é comum que os administradores renomeiem ou movam links regularmente.
Os caminhos dfs fornecidos para NetDfsMove podem ser um link DFS real ou apenas um prefixo de caminho de link dfs. Curingas não são permitidos e apenas caminhos absolutos podem ser especificados. Caminhos relativos e sintaxe de nome de caminho especial (como "." ou "..") não são permitidos.
Quando um prefixo de caminho de link dfs é especificado em vez de um caminho DFS completo, a operação de movimentação é executada em todos os links DFS que contêm esse prefixo. Portanto, uma única chamada para NetDfsMove pode "mover" vários links. No entanto, o prefixo de caminho deve resolve para pelo menos um link DFS válido ou a operação de movimentação falhará.
Os exemplos a seguir demonstram diferentes operações de movimentação e os resultados.
-
- Caminho antigo: \\MyDfsServer\MyDfsShare\dir1\dir2\link1
- Novo caminho: \\MyDfsServer\MyDfsShare\dir1\dir2\link2
-
- Caminho antigo: \\MyDfsServer\MyDfsShare\dir1\dir2\link1
- Novo caminho: \\MyDfsServer\MyDfsShare\dir3\dir4\dir5\link2
-
- Caminho antigo: \\MyDfsServer\MyDfsShare\dir1
- Novo caminho: \\MyDfsServer\MyDfsShare\dir3
-
- Caminho antigo: \\MyDfsServer\MyDfsShare\dir1
- Novo caminho: \\MyDfsServer\MyDfsShare
- Links existentes: \\MyDfsServer\MyDfsShare\dir1\link1, \\MyDfsServer\MyDfsShare\link3
- Caminho antigo:\\MyDfsServer\MyDfsShare\dir1
- Novo caminho: \\MyDfsServer\MyDfsShare\link3
Com servidores DFS baseados em domínio, a operação de movimentação é atômica; ou seja, toda a operação é executada ou falha. No entanto, com servidores DFS autônomos, não há garantia de que a operação de movimentação seja atômica. Nessa situação, uma falha pode resultar em uma operação de movimentação parcialmente concluída e exigirá limpeza em nome do aplicativo de chamada.
Quando a operação de movimentação for bem-sucedida, é garantido que os metadados do DFS foram modificados com êxito. Isso não garante que os links dfs foram realmente criados nos destinos raiz ou que os links DFS podem ser criados no armazenamento dos destinos raiz.
Requisitos
Cliente mínimo com suporte | Windows Vista |
Servidor mínimo com suporte | Windows Server 2008, Windows Server 2008 |
Plataforma de Destino | Windows |
Cabeçalho | lmdfs.h (inclua LmDfs.h, Lm.h) |
Biblioteca | Netapi32.lib |
DLL | Netapi32.dll |
Confira também
Funções dfs (sistema de arquivos distribuído)