次の方法で共有


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;

partial class Program
{
    static void DirectoryMoveExample()
    {
        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

Partial Class Program
    Shared Sub DirectoryMoveExample()

        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 Class

注釈

このメソッドは、 destDirName で指定された名前の新しいディレクトリを作成し、ファイルやディレクトリを含む sourceDirNameの内容を新しく作成された宛先ディレクトリに移動します。 その後、 sourceDirName ディレクトリが削除されます。

既に存在するディレクトリにディレクトリを移動しようとすると、 IOException が発生します。

sourceDirNameおよびdestDirName引数は、相対パス情報または絶対パス情報を指定できます。 相対パス情報は、現在の作業ディレクトリに対する相対パスとして解釈されます。 現在の作業ディレクトリを取得するには、 GetCurrentDirectoryを参照してください。

ディレクトリを移動する前に、パス パラメーターの末尾から末尾のスペースが削除されます。

一般的な I/O タスクの一覧については、「 一般的な I/O タスク」を参照してください。

.NET Core 3.0 以降では、destDirNameが既に存在する場合、Move メソッドはすべてのプラットフォームでIOExceptionをスローします。 C++ の名前変更を参照してください。

適用対象

こちらもご覧ください