Compartilhar via


Directory.Move(String, String) Método

Definição

Move um arquivo ou um diretório e seu conteúdo para um novo local.

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 arquivo ou diretório a ser movido.

destDirName
String

O caminho para o novo local para sourceDirName ou seu conteúdo. Se sourceDirName for um arquivo, destDirName também deverá ser um nome de arquivo.

Exceções

Tentativa de mover um diretório para um volume diferente.

- ou -

destDirName já existe. Consulte a nota na seção Comentários.

- ou -

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

- ou -

O diretório ou um arquivo nele está sendo usado por outro processo.

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

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

sourceDirName ou destDirName é null.

O caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.

O caminho especificado por sourceDirName é inválido (por exemplo, ele está em uma unidade não mapeada).

Exemplos

O exemplo a seguir demonstra como mover um diretório e todos os seus arquivos para um novo diretório. O diretório original não existe mais depois de ter sido movido.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            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

Module Module1

    Sub Main()
        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 Module

Comentários

Esse método cria um novo diretório com o nome especificado por destDirName e move o conteúdo de sourceDirName, incluindo arquivos e diretórios, para o diretório de destino recém-criado. Em seguida, ele exclui o sourceDirName diretório.

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

Os sourceDirName argumentos e destDirName têm permissão para especificar informações de caminho relativas ou absolutas. As informações do caminho relativo são interpretadas como relativas ao diretório de trabalho atual. Para obter o diretório de trabalho atual, consulte GetCurrentDirectory.

Espaços à direita são removidos do final dos parâmetros de caminho antes de mover o diretório.

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

Observação

A partir do .NET Core 3.0, o Move método lança um IOException em todas as plataformas quando o destDirName já existe. No .NET Core 2.2 e nas versões anteriores, a exceção só foi gerada no Windows e outras plataformas podem falhar ou substituir o destDirName. Consulte Renomear C++.

Aplica-se a

Confira também