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長さが 0 の文字列、空白のみを含む、または無効な文字が 1 つ以上含まれている。 GetInvalidPathChars() メソッドを使用して、正しくない文字に対するクエリを実行できます。

sourceDirName または destDirNamenull です。

指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。

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 タスク を参照してください。

Note

.NET Core 3.0 以降では、 Move が既に存在する場合、メソッドはすべてのプラットフォームで をdestDirNameスローIOExceptionします。 .NET Core 2.2 以前のバージョンでは、Windows でのみ例外がスローされ、他のプラットフォームでは が失敗するか上書きされる destDirName可能性があります。 C++ の名前変更に関するページを参照してください。

適用対象

こちらもご覧ください