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 已存在。 请参阅“备注”部分中的备注。

- 或 -

sourceDirNamedestDirName 参数引用同一个文件或目录。

- 或 -

另一个进程正在使用目录或其中一个文件。

调用方没有所要求的权限。

.NET Framework 和 .NET Core 版本早于 2.1:sourceDirNamedestDirName 为零长度字符串,仅包含空格,或包含一个或多个无效字符。 你可以使用 GetInvalidPathChars() 方法查询无效字符。

sourceDirNamedestDirNamenull

指定的路径和/或文件名超过了系统定义的最大长度。

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

在移动目录之前,将从路径参数的末尾删除尾随空格。

有关常见 I/O 任务的列表,请参阅 常见 I/O 任务

注意

从 .NET Core 3.0 开始, Move 方法会在已存在时destDirName在所有平台中引发 IOException 。 在 .NET Core 2.2 和早期版本中,仅在 Windows 上引发异常,其他平台可能会失败或覆盖 destDirName。 请参阅 C++ 重命名

适用于

另请参阅