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
уже существует. См. примечание в разделе Примечания.
-или-
Параметры sourceDirName
и destDirName
указывают на один и тот же файл или каталог.
-или-
Каталог или находящийся в нем файл используется другим процессом.
У вызывающего объекта отсутствует необходимое разрешение.
платформа .NET Framework и .NET Core версий старше 2.1: sourceDirName
или destDirName
представляет собой строку нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов. Вы можете запросить недопустимые символы с помощью метода GetInvalidPathChars().
Параметр sourceDirName
или destDirName
имеет значение null
.
Указанный путь, имя файла или оба значения превышают максимальную длину, заданную в системе.
Путь, указанный sourceDirName
, является недопустимым (например, он ведет на несопоставленный диск).
Примеры
В следующем примере показано, как переместить каталог и все его файлы в новый каталог. Исходный каталог больше не существует после его перемещения.
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
Комментарии
Этот метод создает новый каталог с именем, указанным в параметре destDirName
, и перемещает содержимое sourceDirName
, включая файлы и каталоги, в только что созданный целевой каталог. Затем каталог удаляется sourceDirName
.
При попытке переместить каталог в каталог, который уже существует, IOException возникнет исключение .
Аргументы sourceDirName
и destDirName
могут указывать относительные или абсолютные сведения о пути. Сведения об относительном пути интерпретируются как относительные относительно текущего рабочего каталога. Сведения о том, как получить текущий рабочий каталог, см. в разделе GetCurrentDirectory.
Конечные пробелы удаляются из конца параметров пути перед перемещением каталога.
Список распространенных задач ввода-вывода см. в разделе Общие задачи ввода-вывода.
Примечание
Начиная с .NET Core 3.0, Move
метод вызывает на IOException всех платформах, если destDirName
уже существует. В .NET Core 2.2 и предыдущих версиях исключение было вызвано только в Windows, а другие платформы могли либо завершиться сбоем destDirName
, либо перезаписать . См. раздел Переименование C++.