Поделиться через


Directory.Move(String, String) Метод

Определение

Перемещает файл или каталог и его содержимое в новое расположение.

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)

Параметры

sourceDirName
String

Путь к файлу или каталогу для перемещения.

destDirName
String

Путь к новому расположению sourceDirName или его содержимому. Если sourceDirName файл является файлом, то destDirName также должно быть именем файла.

Исключения

Предпринята попытка переместить каталог в другой том.

–или–

destDirName уже существует. См. примечание в разделе "Примечания".

–или–

destDirName Параметры sourceDirName ссылаются на тот же файл или каталог.

–или–

Каталог или файл в нем используется другим процессом.

Вызывающий объект не имеет требуемого разрешения.

Версии .NET Framework и .NET Core старше 2.1: sourceDirName или destDirName является строкой нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов. Вы можете запросить недопустимые символы с GetInvalidPathChars() помощью метода.

sourceDirName или destDirName есть null.

Указанный путь, имя файла или оба превышают определенную системой максимальную длину.

Путь, указанный недопустимым sourceDirName (например, он находится на несопоставленном диске).

Примеры

В следующем примере показано, как переместить каталог и все его файлы в новый каталог. Исходный каталог больше не существует после перемещения.

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

Комментарии

Этот метод создает новый каталог с именем, указанным destDirName и перемещает содержимое sourceDirName, включая файлы и каталоги, в только что созданный целевой каталог. Затем он удаляет sourceDirName каталог.

При попытке переместить каталог в каталог, который уже существует, IOException возникнет ошибка.

destDirName Аргументы sourceDirName могут указывать относительные или абсолютные сведения о пути. Относительные сведения о пути интерпретируются как относительные к текущему рабочему каталогу. Чтобы получить текущий рабочий каталог, см. GetCurrentDirectory.

Конечные пробелы удаляются из конца параметров пути перед перемещением каталога.

Список распространенных задач ввода-вывода см. в разделе Распространенные задачи ввода-вывода.

Замечание

Начиная с .NET Core 3.0 Move , метод создает IOException исключение во всех платформах, когда destDirName уже существует. См. раздел "Переименование C++".

Применяется к

См. также раздел