Compartir vía


Directory.Move(String, String) Método

Definición

Mueve un archivo o directorio y su contenido a una nueva ubicación.

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

Ruta de acceso del archivo o del directorio que se va a mover.

destDirName
String

Ruta de acceso a la nueva ubicación para sourceDirName o su contenido. Si sourceDirName es un archivo, destDirName debe ser también un nombre de archivo.

Excepciones

Se ha intentado mover un directorio a otro volumen.

o bien

destDirName ya existe. Vea la nota en la sección Comentarios.

O bien

Los parámetros sourceDirName y destDirName hacen referencia al mismo archivo o directorio.

O bien

El directorio o un archivo que se está siendo usando por otro proceso.

El llamador no dispone del permiso requerido.

Versiones de .NET Framework y .NET Core anteriores a 2.1: sourceDirName o destDirName es una cadena de longitud cero, solo contiene espacios en blanco o contiene uno o varios caracteres no válidos. Puede consultar los caracteres no válidos con el método GetInvalidPathChars().

sourceDirName o destDirName es null.

La ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.

La ruta de acceso especificada por sourceDirName no es válida (por ejemplo, está en una unidad no asignada).

Ejemplos

En el ejemplo siguiente se muestra cómo mover un directorio y todos sus archivos a un directorio nuevo. El directorio original ya no existe después de moverlo.

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

Comentarios

Este método crea un nuevo directorio con el nombre especificado por destDirName y mueve el contenido de sourceDirName, incluidos los archivos y directorios, al directorio de destino recién creado. A continuación, elimina el sourceDirName directorio .

Si intenta mover un directorio a un directorio que ya existe, se producirá una IOException excepción .

Los sourceDirName argumentos y destDirName pueden especificar información de ruta de acceso relativa o absoluta. La información de ruta de acceso relativa se interpreta como relativa al directorio de trabajo actual. Para obtener el directorio de trabajo actual, consulte GetCurrentDirectory.

Los espacios finales se quitan del final de los parámetros de ruta de acceso antes de mover el directorio.

Para obtener una lista de tareas de E/S comunes, consulte Tareas de E/S comunes.

Nota

A partir de .NET Core 3.0, el Move método inicia una IOException excepción en todas las plataformas cuando destDirName ya existe. En .NET Core 2.2 y versiones anteriores, la excepción solo se produjo en Windows y otras plataformas podían conmutar por error o sobrescribir .destDirName Consulte Cambio de nombre de C++.

Se aplica a

Consulte también