DirectoryInfo.MoveTo(String) Метод

Определение

Перемещает экземпляр DirectoryInfo и его содержимое в местоположение, на которое указывает новый путь.

public void MoveTo (string destDirName);

Параметры

destDirName
String

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

Исключения

destDirName имеет значение null.

destDirName является пустой строкой ("").

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

-или-

destDirName уже существует.

-или-

Отсутствует авторизация для доступа по этому пути.

-или-

Каталог перемещается, и каталог назначения имеет то же самое имя.

У вызывающего объекта отсутствует необходимое разрешение.

Не удалось найти каталог назначения.

Примеры

В следующем примере показано перемещение каталога.

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

Комментарии

Этот метод вызывает исключение IOException , если, например, вы пытаетесь переместить c:\mydir в папку c:\public, а c:\public уже существует. В качестве destDirName параметра необходимо указать "c:\\public\\mydir" или указать новое имя каталога, например "c:\\newdir".

Этот метод позволяет перемещать каталог в каталог, доступный только для чтения. Атрибут чтения и записи в каталоге не затрагивается.

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

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

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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