Directory.Move(String, String) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将文件或目录及其内容移到新位置。
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。
在移动目录之前,将从路径参数的末尾删除尾随空格。
有关常见 I/O 任务的列表,请参阅 常见 I/O 任务。
注意
从 .NET Core 3.0 开始, Move
方法会在已存在时destDirName
在所有平台中引发 IOException 。 在 .NET Core 2.2 和早期版本中,仅在 Windows 上引发异常,其他平台可能会失败或覆盖 destDirName
。 请参阅 C++ 重命名。