Directory.Move(String, String) Metoda

Definicja

Przenosi plik lub katalog wraz z jego zawartością do nowej lokalizacji.Moves a file or a directory and its contents to a new location.

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)

Parametry

sourceDirName
String

Ścieżka pliku lub katalogu, który ma zostać przeniesiony.The path of the file or directory to move.

destDirName
String

Ścieżka do nowej lokalizacji sourceDirName.The path to the new location for sourceDirName. Jeśli sourceDirName jest plikiem, destDirName również musi być nazwą pliku.If sourceDirName is a file, then destDirName must also be a file name.

Wyjątki

Podjęto próbę przeniesienia katalogu do innego woluminu.An attempt was made to move a directory to a different volume.

lub-or- destDirName już istnieje.destDirName already exists. Zapoznaj się z uwagą w sekcji uwagi.See the Note in the Remarks section.

lub-or- Parametry sourceDirName i destDirName odwołują się do tego samego pliku lub katalogu.The sourceDirName and destDirName parameters refer to the same file or directory.

lub-or- Katalog lub znajdujący się w nim plik jest używany przez inny proces.The directory or a file within it is being used by another process.

Element wywołujący nie ma wymaganego uprawnienia.The caller does not have the required permission.

sourceDirName lub destDirName jest ciągiem o zerowej długości, zawiera tylko znak odstępu lub zawiera jeden lub więcej nieprawidłowych znaków.sourceDirName or destDirName is a zero-length string, contains only white space, or contains one or more invalid characters. Za pomocą metody GetInvalidPathChars() można wykonywać zapytania dotyczące nieprawidłowych znaków.You can query for invalid characters with the GetInvalidPathChars() method.

Parametr sourceDirName lub destDirName ma wartość null.sourceDirName or destDirName is null.

Podana ścieżka, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system.The specified path, file name, or both exceed the system-defined maximum length.

Ścieżka określona przez sourceDirName jest nieprawidłowa (na przykład znajduje się na dysku niezamapowanym).The path specified by sourceDirName is invalid (for example, it is on an unmapped drive).

Przykłady

W poniższym przykładzie pokazano, jak przenieść katalog i wszystkie jego pliki do nowego katalogu.The following example demonstrates how to move a directory and all its files to a new directory. Po przeniesieniu oryginalny katalog już nie istnieje.The original directory no longer exists after it has been moved.

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);
            }
        }
    }
}
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

Uwagi

Ta metoda tworzy nowy katalog o nazwie określonej przez destDirName i przenosi zawartość sourceDirName do nowo utworzonego katalogu docelowego.This method creates a new directory with the name specified by destDirName and moves the contents of sourceDirName to the newly created destination directory. Jeśli spróbujesz przenieść katalog do katalogu, który już istnieje, pojawi się IOException.If you try to move a directory to a directory that already exists, an IOException will occur. Na przykład wyjątek wystąpi, jeśli próbujesz przenieść c:\mydir do c:\public, a c:\public już istnieje.For example, an exception will occur if you try to move c:\mydir to c:\public, and c:\public already exists. Alternatywnie można określić wartość "c:\\public\\mydir" jako parametr destDirName, pod warunkiem, że "Mydir" nie istnieje w obszarze "c:\\public" lub określić nową nazwę katalogu, taką jak "c:\\newdir".Alternatively, you could specify "c:\\public\\mydir" as the destDirName parameter, provided that "mydir" does not exist under "c:\\public", or specify a new directory name such as "c:\\newdir".

Argumenty sourceDirName i destDirName mogą określać informacje o ścieżce względnej lub bezwzględnej.The sourceDirName and destDirName arguments are permitted to specify relative or absolute path information. Informacje o ścieżce względnej są interpretowane jako względne w stosunku do bieżącego katalogu roboczego.Relative path information is interpreted as relative to the current working directory. Aby uzyskać bieżący katalog roboczy, zobacz GetCurrentDirectory.To obtain the current working directory, see GetCurrentDirectory.

Spacje końcowe są usuwane z końca parametrów ścieżki przed przeniesieniem katalogu.Trailing spaces are removed from the end of the path parameters before moving the directory.

Aby uzyskać listę typowych zadań we/wy, zobacz typowe zadania we/wy.For a list of common I/O tasks, see Common I/O Tasks.

Uwaga

Począwszy od platformy .NET Core 3,0, Metoda Move zgłasza IOException na wszystkich platformach, gdy destDirName już istnieje.Starting with .NET Core 3.0, the Move method throws an IOException in all platforms when the destDirName already exists. W programie .NET Core 2,2 i poprzednich wersjach wyjątek został wygenerowany tylko w systemie Windows, a inne platformy mogą się nie powieść lub zastąpić destDirName.In .NET Core 2.2 and previous versions, the exception was only thrown on Windows, and other platforms could either fail or overwrite the destDirName. Zobacz C++ zmiana nazwy.See C++ rename.

Zabezpieczenia

FileIOPermission
do odczytywania z sourceDirName i zapisywania do sourceDirName i destDirName.for reading from sourceDirName and writing to sourceDirName and destDirName. Skojarzone wyliczenia: Read, WriteAssociated enumerations: Read, Write

Dotyczy

Zobacz też