DirectoryInfo.MoveTo(String) Methode

Definition

Verschiebt eine DirectoryInfo-Instanz und deren Inhalt in einen neuen Pfad.Moves a DirectoryInfo instance and its contents to a new path.

public:
 void MoveTo(System::String ^ destDirName);
public void MoveTo (string destDirName);
member this.MoveTo : string -> unit
Public Sub MoveTo (destDirName As String)

Parameter

destDirName
String

Der Name und Pfad des Verzeichnisses, in das das Verzeichnis verschoben werden soll.The name and path to which to move this directory. Das Ziel darf kein anderes Datenträgervolume und kein Verzeichnis mit dem gleichen Namen sein.The destination cannot be another disk volume or a directory with the identical name. Es kann ein vorhandenes Verzeichnis sein, dem dieses Verzeichnis als Unterverzeichnis hinzugefügt werden soll.It can be an existing directory to which you want to add this directory as a subdirectory.

Ausnahmen

destDirName ist null.destDirName is null.

destDirName ist eine leere Zeichenfolge ("").destDirName is an empty string (''").

Es wurde versucht, ein Verzeichnis auf ein anderes Volume zu verschieben.An attempt was made to move a directory to a different volume.

- oder --or- destDirName ist bereits vorhanden.destDirName already exists.

- oder --or- Sie sind nicht autorisiert, auf diesen Pfad zuzugreifen.You are not authorized to access this path.

- oder --or- Das verschobene Verzeichnis und das Zielverzeichnis haben denselben Namen.The directory being moved and the destination directory have the same name.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.The caller does not have the required permission.

Das Zielverzeichnis kann nicht gefunden werden.The destination directory cannot be found.

Beispiele

Im folgenden Beispiel wird das Verschieben eines Verzeichnisses veranschaulicht.The following example demonstrates moving a directory.

using namespace System;
using namespace System::IO;
int main()
{
   
   // Make a reference to a directory.
   DirectoryInfo^ di = gcnew DirectoryInfo( "TempDir" );
   
   // Create the directory only if it does not already exist.
   if (  !di->Exists )
      di->Create();

   
   // Create a subdirectory in the directory just created.
   DirectoryInfo^ dis = di->CreateSubdirectory( "SubDir" );
   
   // Move the main directory. Note that the contents move with the directory.
   if (  !Directory::Exists( "NewTempDir" ) )
      di->MoveTo( "NewTempDir" );

   try
   {
      
      // Attempt to delete the subdirectory. Note that because it has been
      // moved, an exception is thrown.
      dis->Delete( true );
   }
   catch ( Exception^ ) 
   {
      
      // Handle this exception in some way, such as with the following code:
      // Console::WriteLine(S"That directory does not exist.");
   }

   
   // Point the DirectoryInfo reference to the new directory.
   //di = new DirectoryInfo(S"NewTempDir");
   // Delete the directory.
   //di->Delete(true);
}

using System;
using System.IO;

public class MoveToTest 
{
    public static void Main() 
    {

        // Make a reference to a directory.
        DirectoryInfo di = new DirectoryInfo("TempDir");

        // Create the directory only if it does not already exist.
        if (di.Exists == false)
            di.Create();

        // Create a subdirectory in the directory just created.
        DirectoryInfo dis = di.CreateSubdirectory("SubDir");

        // Move the main directory. Note that the contents move with the directory.
        if (Directory.Exists("NewTempDir") == false)
            di.MoveTo("NewTempDir");

        try 
        {
            // Attempt to delete the subdirectory. Note that because it has been
            // moved, an exception is thrown.
            dis.Delete(true);
        } 
        catch (Exception) 
        {
            // Handle this exception in some way, such as with the following code:
            // Console.WriteLine("That directory does not exist.");
        }

        // Point the DirectoryInfo reference to the new directory.
        //di = new DirectoryInfo("NewTempDir");

        // Delete the directory.
        //di.Delete(true);
    }
}
Imports System.IO

Public Class MoveToTest

    Public Shared Sub Main()
        ' Make a reference to a directory.
        Dim di As New DirectoryInfo("TempDir")
        ' Create the directory only if it does not already exist.
        If di.Exists = False Then
            di.Create()
        End If

        ' Create a subdirectory in the directory just created.
        Dim dis As DirectoryInfo = di.CreateSubdirectory("SubDir")
        If Directory.Exists("NewTempDir") = False Then
            ' Move the main directory. Note that the contents move with the directory.
            di.MoveTo("NewTempDir")
        End If
        Try
            ' Attempt to delete the subdirectory. Note that because it has been
            ' moved, an exception is thrown.
            dis.Delete(True)
        Catch
            ' Handle this exception in some way, such as with the following code:
            ' Console.WriteLine("That directory does not exist.");
            ' Point the DirectoryInfo reference to the new directory.
            ' di = New DirectoryInfo("NewTempDir")
            ' Delete the directory.
            ' di.Delete(True)        
        End Try

    End Sub
End Class

Hinweise

Diese Methode löst eine IOException aus, wenn Sie z. b. versuchen, c:\meinedir nach c:\Public zu verschieben, und c:\Public bereits vorhanden ist.This method throws an IOException if, for example, you try to move c:\mydir to c:\public, and c:\public already exists. Sie müssen "c:\\Public\\MyDir" als destDirName Parameter angeben oder einen neuen Verzeichnisnamen angeben, z. b. "c:\\newdir".You must specify "c:\\public\\mydir" as the destDirName parameter, or specify a new directory name such as "c:\\newdir".

Diese Methode ermöglicht das Verschieben eines Verzeichnisses in ein Schreib geschütztes Verzeichnis.This method permits moving a directory to a read-only directory. Das Attribut mit Lese-/Schreibzugriff ist von keinem der Verzeichnisse betroffen.The read/write attribute of neither directory is affected.

Eine Liste der allgemeinen e/a-Aufgaben finden Sie unter Allgemeine e/a-Aufgaben.For a list of common I/O tasks, see Common I/O Tasks.

Gilt für:

Siehe auch