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 和 2.1 之前的 .NET Core 版本: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 開始,當 已經存在 時destDirName
,Move
方法會在所有平台中擲回 IOException 。 在 .NET Core 2.2 和舊版中,例外狀況只會在 Windows 上擲回,而其他平臺可能會失敗或覆寫 destDirName
。 請參閱 C++ 重新命名。