Directory.Move(String, String) Método

Definição

Move um ficheiro ou diretório e o seu conteúdo para uma nova localização.

public:
 static void Move(System::String ^ sourceDirName, System::String ^ destDirName);
public static void Move(string sourceDirName, string destDirName);
static member Move : string * string -> unit
Public Shared Sub Move (sourceDirName As String, destDirName As String)

Parâmetros

sourceDirName
String

O caminho do ficheiro ou diretório a mover.

destDirName
String

O caminho para o novo local sourceDirName ou o seu conteúdo. Se sourceDirName for um ficheiro, então destDirName também deve ser um nome de ficheiro.

Exceções

Foi feita uma tentativa de mover um diretório para um volume diferente.

-ou-

destDirName já existe. Veja a nota na secção de Observações.

-ou-

Os sourceDirName parâmetros e destDirName referem-se ao mesmo ficheiro ou diretório.

-ou-

O diretório ou um ficheiro dentro dele está a ser usado por outro processo.

O interlocutor não tem a permissão necessária.

.NET Framework e versões .NET Core anteriores à 2.1: sourceDirName ou destDirName é uma cadeia de comprimento zero, contém apenas espaço em branco ou contém um ou mais caracteres inválidos. Podes consultar caracteres inválidos com o GetInvalidPathChars() método.

sourceDirName ou destDirName é null.

O caminho especificado, nome do ficheiro ou ambos excedem o comprimento máximo definido pelo sistema.

O caminho especificado por sourceDirName é inválido (por exemplo, está num disco não mapeado).

Exemplos

O exemplo seguinte demonstra como mover um diretório e todos os seus ficheiros para um novo diretório. O diretório original deixa de existir depois de ter sido movido.

using System;
using System.IO;

partial class Program
{
    static void DirectoryMoveExample()
    {
        string sourceDirectory = @"C:\source";
        string destinationDirectory = @"C:\destination";

        try
        {
            Directory.Move(sourceDirectory, destinationDirectory);
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
}
open System.IO

let sourceDirectory = @"C:\source"
let destinationDirectory = @"C:\destination"

try
    Directory.Move(sourceDirectory, destinationDirectory)
with e ->
    printfn $"{e.Message}"
Imports System.IO

Partial Class Program
    Shared Sub DirectoryMoveExample()

        Dim sourceDirectory As String = "C:\source"
        Dim destinationDirectory As String = "C:\destination"

        Try
            Directory.Move(sourceDirectory, destinationDirectory)
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub
End Class

Observações

Este método cria um novo diretório com o nome especificado por destDirName e move o conteúdo de sourceDirName, incluindo ficheiros e diretórios, para o diretório de destino recém-criado. Depois apaga o sourceDirName diretório.

Se tentar mover um diretório para um diretório que já existe, ocorrerá um IOException problema.

Os sourceDirName argumentos e destDirName podem especificar informação relativa ou absoluta do caminho. A informação relativa do caminho é interpretada como relativa ao diretório de trabalho atual. Para obter o diretório de trabalho atual, veja GetCurrentDirectory.

Os espaços finais são removidos do final dos parâmetros do caminho antes de mover o diretório.

Para uma lista de tarefas comuns de E/S, consulte Tarefas Comuns de E/S.

Note

A partir .NET Core 3.0, o método Move lança um IOException em todas as plataformas quando o destDirName já existe. Ver renomeação em C++.

Aplica-se a

Ver também