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 和 2.1 之前的 .NET Core 版本: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 就會發生 。

sourceDirNamedestDirName 自變數可以指定相對或絕對路徑資訊。 相對路徑資訊會解譯為相對於目前的工作目錄。 若要取得目前的工作目錄,請參閱 GetCurrentDirectory

在移動目錄之前,尾端空格會從路徑參數的結尾移除。

如需一般 I/O 工作的清單,請參閱 一般 I/O 工作

注意

從 .NET Core 3.0 開始,當 已經存在 時destDirNameMove方法會在所有平台中擲回 IOException 。 在 .NET Core 2.2 和舊版中,例外狀況只會在 Windows 上擲回,而其他平臺可能會失敗或覆寫 destDirName。 請參閱 C++ 重新命名

適用於

另請參閱