Freigeben über


Directory.Move(String, String) Methode

Definition

Verschiebt eine Datei oder ein Verzeichnis und dessen 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 Datei oder des Verzeichnisses, das verschoben werden soll.

destDirName
String

Der Pfad zum neuen Speicherort für sourceDirName oder dessen Inhalt. Wenn sourceDirName eine Datei ist, muss destDirName auch ein Dateiname sein.

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 -

Der sourceDirName-Parameter und destDirName-Parameter verweisen 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 älter als 2.1: sourceDirName oder destDirName ist eine Zeichenfolge der Länge null, enthält nur Leerzeichen oder enthält ein oder mehrere ungültige Zeichen. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode ausführen.

sourceDirName oder destDirName ist null.

Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.

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

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie Ein Verzeichnis und alle zugehörigen Dateien in ein neues Verzeichnis verschoben werden. Das ursprüngliche Verzeichnis ist nach dem Verschieben nicht mehr vorhanden.

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

Hinweise

Diese Methode erstellt ein neues Verzeichnis mit dem von 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 auf.

Die sourceDirName Argumente und 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 am Ende der Pfadparameter entfernt.

Eine Liste der allgemeinen E/A-Aufgaben finden Sie unter Allgemeine E/A-Aufgaben.

Hinweis

Ab .NET Core 3.0 löst die Move -Methode auf allen Plattformen eine aus IOException , wenn bereits destDirName vorhanden ist. In .NET Core 2.2 und früheren Versionen wurde die Ausnahme nur unter Windows ausgelöst, und andere Plattformen konnten entweder fehlschlagen oder überschreiben destDirName. Weitere Informationen finden Sie unter C++-Umbenennung.

Gilt für:

Weitere Informationen