Freigeben über


Directory.Move(String, String) Methode

Definition

Verschiebt eine Datei oder ein Verzeichnis und deren Inhalt an einen neuen Speicherort.

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)

Parameter

sourceDirName
String

Der Pfad der zu verschiebenden Datei oder des Verzeichnisses.

destDirName
String

Der Pfad zum neuen Speicherort für sourceDirName oder deren Inhalt. Wenn sourceDirName es sich um eine Datei handelt, destDirName muss es sich auch um einen Dateinamen handelt.

Ausnahmen

Es wurde versucht, ein Verzeichnis auf ein anderes Volume zu verschieben.

- oder -

destDirName ist bereits vorhanden. Weitere Informationen finden Sie im Abschnitt "Hinweise".

- oder -

Die sourceDirName Parameter beziehen destDirName sich auf dieselbe Datei oder dasselbe Verzeichnis.

- oder -

Das Verzeichnis oder eine Darin enthaltene Datei wird von einem anderen Prozess verwendet.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind oder sourceDirNamedestDirName eine leere Zeichenfolge sind, nur Leerzeichen enthalten oder mindestens ein ungültiges Zeichen enthalten. Sie können ungültige Zeichen mit der GetInvalidPathChars() Methode abfragen.

sourceDirName oder destDirName ist null.

Der angegebene Pfad, der Dateiname oder beide überschreiten die vom System definierte maximale Länge.

Der angegebene sourceDirName Pfad ist ungültig (z. B. auf einem nicht zugeordneten Laufwerk).

Beispiele

Im folgenden Beispiel wird das Verschieben eines Verzeichnisses und aller zugehörigen Dateien in ein neues Verzeichnis veranschaulicht. Das ursprüngliche Verzeichnis ist nach dem Verschieben nicht mehr vorhanden.

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

Hinweise

Diese Methode erstellt ein neues Verzeichnis mit dem angegebenen destDirName Namen und verschiebt den Inhalt von sourceDirName, einschließlich Dateien und Verzeichnissen, in das neu erstellte Zielverzeichnis. Anschließend wird das sourceDirName Verzeichnis gelöscht.

Wenn Sie versuchen, ein Verzeichnis in ein bereits vorhandenes Verzeichnis zu verschieben, tritt ein IOException Fehler auf.

Die sourceDirName Argumente destDirName dürfen relative oder absolute Pfadinformationen angeben. Relative Pfadinformationen werden relativ zum aktuellen Arbeitsverzeichnis interpretiert. Informationen zum Abrufen des aktuellen Arbeitsverzeichnisses finden Sie unter GetCurrentDirectory.

Nachfolgende Leerzeichen werden vor dem Verschieben des Verzeichnisses vom Ende der Pfadparameter entfernt.

Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".

Hinweis

Ab .NET Core 3.0 löst die Move Methode eine IOException in allen Plattformen aus, wenn die destDirName bereits vorhanden ist. Siehe C++-Umbenennen.

Gilt für:

Weitere Informationen