方法 : Visual Basic でディレクトリを別のディレクトリにコピーする
ディレクトリを別のディレクトリにコピーするには、CopyDirectory メソッドを使用します。 このメソッドでは、ディレクトリ自体とその内容がコピーされます。 コピー先のディレクトリが存在しない場合は作成されます。 コピー先の場所に同じ名前のディレクトリが存在し、overwrite
が False
に設定されている場合は、2 つのディレクトリの内容がマージされます。 操作中に、ディレクトリに新しい名前を指定できます。
ディレクトリ内でファイルをコピーするとき、特定のファイルが原因で例外がスローされることがあります。たとえば、overwrite
が False
に設定されていて、マージ中に、既にファイルが存在する場合などです。 こうしてスローされた例外は、単一の例外に統合され、その Data
プロパティにエントリが保持されます。それらのエントリでは、ファイルまたはディレクトリ パスがキーとなり、固有の例外メッセージがそれに対応した値に格納されます。
ディレクトリを別のディレクトリにコピーするには
CopyDirectory
メソッドを使用し、コピー元とコピー先のディレクトリ名を指定します。 次の例では、TestDirectory1
という名前のディレクトリをTestDirectory2
にコピーし、既存のファイルは上書きします。My.Computer.FileSystem.CopyDirectory("C:\TestDirectory1", "C:\TestDirectory2", True)
このコード例は、IntelliSense コード スニペットとしても利用できます。 コード スニペット ピッカーでは、コード例は [ファイル システム - ドライブ、フォルダー、およびファイルの処理] にあります。 詳細については、「Code Snippets」を参照してください。
信頼性の高いプログラミング
次の条件を満たす場合は、例外が発生する可能性があります。
ディレクトリに指定された新しい名前にコロン (:) またはスラッシュ (\ または /) が含まれている (ArgumentException)。
パスが有効ではありません。原因として、長さが 0 の文字列であるか、空白のみが含まれているか、無効な文字が含まれているか、デバイス パスである (先頭が \\.\ である) ことが考えられます (ArgumentException)。
パスが
Nothing
であるため、有効でない (ArgumentNullException)destinationDirectoryName
がNothing
または空の文字列である (ArgumentNullException)。ソース ディレクトリが存在しない (DirectoryNotFoundException)。
ソース ディレクトリがルート ディレクトリである (IOException)。
パスを組み合わせると、既存のファイルと同じになる (IOException)。
コピー元のパスとコピー先のパスが同じである (IOException)。
ShowUI
がUIOption.AllDialogs
に設定されており、ユーザーが操作をキャンセルした、またはディレクトリ内の 1 つ以上のファイルをコピーできなかった (OperationCanceledException)。操作が循環している (InvalidOperationException)。
パスにコロン (:) が含まれている (NotSupportedException)。
パスがシステムで定義されている最大長を超えている (PathTooLongException)。
パス内のファイル名またはフォルダー名にコロン (:) が含まれている、または形式が無効である (NotSupportedException)。
ユーザーがパスを参照するのに必要なアクセス許可がない (SecurityException)
コピー先のファイルは存在するが、アクセスできない (UnauthorizedAccessException)。
関連項目
.NET