次の方法で共有


方法: Visual Basic でディレクトリを別のディレクトリにコピーする

CopyDirectoryメソッドを使用して、ディレクトリを別のディレクトリにコピーします。 このメソッドは、ディレクトリの内容とディレクトリ自体をコピーします。 ターゲット ディレクトリが存在しない場合は、作成されます。 ターゲットの場所に同じ名前のディレクトリが存在し、 overwriteFalse に設定されている場合、2 つのディレクトリの内容がマージされます。 操作中にディレクトリの新しい名前を指定できます。

ディレクトリ内のファイルをコピーする際、マージ中にすでに存在するファイルなど、特定のファイルによって引き起こされる例外がoverwriteFalseに設定されているときに発生することがあります。 このような例外がスローされると、1 つの例外に統合されます。 Data プロパティは、ファイルまたはディレクトリ パスがキーであり、特定の例外メッセージが対応する値に含まれているエントリを保持します。

ディレクトリを別のディレクトリにコピーするには

  • CopyDirectoryメソッドを使用して、ソースと宛先のディレクトリ名を指定します。 次の例では、 TestDirectory1 という名前のディレクトリを TestDirectory2にコピーし、既存のファイルを上書きします。

    My.Computer.FileSystem.CopyDirectory("C:\TestDirectory1", "C:\TestDirectory2", True)
    

    このコード例は、IntelliSense コード スニペットとしても使用できます。 コード スニペット ピッカーでは、 ファイル システム (ドライブ、フォルダー、ファイルの処理) にあります。 詳細については、「 コード スニペット」を参照してください。

堅牢なプログラミング

次の条件が原因で例外が発生する可能性があります。

  • ディレクトリに指定された新しい名前には、コロン (:)またはスラッシュ (\ または /) (ArgumentException) が含まれています。

  • パスは次のいずれかの理由で無効です。長さ 0 の文字列、空白のみが含まれている、無効な文字が含まれている、またはデバイス パス (\\.\で始まる) (ArgumentException)。

  • パスは Nothing (ArgumentNullException) であるため無効です。

  • destinationDirectoryNameNothing または空の文字列 (ArgumentNullException) です

  • ソース ディレクトリが存在しません (DirectoryNotFoundException)。

  • ソース ディレクトリはルート ディレクトリ (IOException) です。

  • 結合されたパスは、既存のファイル (IOException) を指します。

  • ソース パスとターゲット パスは同じです (IOException)。

  • ShowUIUIOption.AllDialogs に設定され、ユーザーが操作を取り消すか、ディレクトリ内の 1 つ以上のファイルをコピーできません (OperationCanceledException)。

  • 操作は循環 (InvalidOperationException) です。

  • パスにはコロン (:) (NotSupportedException) が含まれています。

  • パスがシステム定義の最大長 (PathTooLongException) を超えています。

  • パス内のファイル名またはフォルダー名にコロン (:)または無効な形式 (NotSupportedException) が含まれています。

  • ユーザーには、パスを表示するために必要なアクセス許可がありません (SecurityException)。

  • コピー先ファイルは存在しますが、アクセスできません (UnauthorizedAccessException)。

こちらも参照ください