CopyDirectoryメソッドを使用して、ディレクトリを別のディレクトリにコピーします。 このメソッドは、ディレクトリの内容とディレクトリ自体をコピーします。 ターゲット ディレクトリが存在しない場合は、作成されます。 ターゲットの場所に同じ名前のディレクトリが存在し、 overwrite
が False
に設定されている場合、2 つのディレクトリの内容がマージされます。 操作中にディレクトリの新しい名前を指定できます。
ディレクトリ内のファイルをコピーする際、マージ中にすでに存在するファイルなど、特定のファイルによって引き起こされる例外がoverwrite
がFalse
に設定されているときに発生することがあります。 このような例外がスローされると、1 つの例外に統合されます。 Data
プロパティは、ファイルまたはディレクトリ パスがキーであり、特定の例外メッセージが対応する値に含まれているエントリを保持します。
ディレクトリを別のディレクトリにコピーするには
CopyDirectory
メソッドを使用して、ソースと宛先のディレクトリ名を指定します。 次の例では、TestDirectory1
という名前のディレクトリをTestDirectory2
にコピーし、既存のファイルを上書きします。My.Computer.FileSystem.CopyDirectory("C:\TestDirectory1", "C:\TestDirectory2", True)
このコード例は、IntelliSense コード スニペットとしても使用できます。 コード スニペット ピッカーでは、 ファイル システム (ドライブ、フォルダー、ファイルの処理) にあります。 詳細については、「 コード スニペット」を参照してください。
堅牢なプログラミング
次の条件が原因で例外が発生する可能性があります。
ディレクトリに指定された新しい名前には、コロン (:)またはスラッシュ (\ または /) (ArgumentException) が含まれています。
パスは次のいずれかの理由で無効です。長さ 0 の文字列、空白のみが含まれている、無効な文字が含まれている、またはデバイス パス (\\.\で始まる) (ArgumentException)。
パスは
Nothing
(ArgumentNullException) であるため無効です。destinationDirectoryName
がNothing
または空の文字列 (ArgumentNullException) ですソース ディレクトリが存在しません (DirectoryNotFoundException)。
ソース ディレクトリはルート ディレクトリ (IOException) です。
結合されたパスは、既存のファイル (IOException) を指します。
ソース パスとターゲット パスは同じです (IOException)。
ShowUI
がUIOption.AllDialogs
に設定され、ユーザーが操作を取り消すか、ディレクトリ内の 1 つ以上のファイルをコピーできません (OperationCanceledException)。操作は循環 (InvalidOperationException) です。
パスにはコロン (:) (NotSupportedException) が含まれています。
パスがシステム定義の最大長 (PathTooLongException) を超えています。
パス内のファイル名またはフォルダー名にコロン (:)または無効な形式 (NotSupportedException) が含まれています。
ユーザーには、パスを表示するために必要なアクセス許可がありません (SecurityException)。
コピー先ファイルは存在しますが、アクセスできません (UnauthorizedAccessException)。
こちらも参照ください
.NET