My.Computer.FileSystem.CopyDirectory メソッド
更新 : 2007 年 11 月
ディレクトリ間のコピーを実行します。
' Usage
My.Computer.FileSystem.CopyDirectory(sourceDirectoryName ,destinationDirectoryName)
My.Computer.FileSystem.CopyDirectory(sourceDirectoryName ,destinationDirectoryName ,overwrite)
My.Computer.FileSystem.CopyDirectory(sourceDirectoryName ,destinationDirectoryName ,showUI)
My.Computer.FileSystem.CopyDirectory(sourceDirectoryName ,destinationDirectoryName ,showUI ,onUserCancel)
' Declaration
Public Sub CopyDirectory( _
ByVal sourceDirectoryName As String, _
ByVal destinationDirectoryName As String _
)
' -or-
Public Sub CopyDirectory( _
ByVal sourceDirectoryName As String, _
ByVal destinationDirectoryName As String, _
ByVal overwrite As Boolean _
)
' -or-
Public Sub CopyDirectory( _
ByVal sourceDirectoryName As String, _
ByVal destinationDirectoryName As String, _
ByVal showUI As UIOption _
)
' -or-
Public Sub CopyDirectory( _
ByVal sourceDirectoryName As String, _
ByVal destinationDirectoryName As String, _
ByVal showUI As UIOption, _
ByVal onUserCancel As UICancelOption _
)
パラメータ
sourceDirectoryName
String です。コピーするディレクトリを指定します。必ず指定します。destinationDirectoryName
String です。ディレクトリをコピーする場所を指定します。必ず指定します。overwrite
Boolean です。既存のファイルを上書きするかどうかを指定します。既定値は False です。必ず指定します。showUI
UIOption です。処理の進行状況を視覚的に表示するかどうかを指定します。既定値は UIOption.OnlyErrorDialogs です。必ず指定します。onUserCancel
UICancelOption です。操作中にユーザーが [キャンセル] ボタンをクリックしたときに実行する処理を指定します。既定値は ThrowException です。必ず指定します。
例外
次の条件を満たす場合は、例外が発生する可能性があります。
ディレクトリとして指定した新しい名前にコロン (:) またはスラッシュ (\ または /) が含まれます (ArgumentException)。
パスが無効です。1) 長さが 0 の文字列である、2) 空白だけが含まれている、3) 無効な文字が含まれている、4) デバイス パスである (\\\\.\\ で開始されている)、のいずれかの理由が考えられます (ArgumentException)。
パスが Nothing であるため、有効ではありません (ArgumentNullException)。
destinationDirectoryName は、Nothing または空の文字列です (ArgumentNullException)。
コピー元のディレクトリが存在しません (DirectoryNotFoundException)。
コピー元のディレクトリがルート ディレクトリではありません (IOException)。
結合されたパスが、既存のファイルを指しています (IOException)。
コピー元のパスとコピー先のパスが同じです (IOException)。
ShowUI が UIOption.AllDialogs に設定され、ユーザーが操作をキャンセルしたか、ディレクトリ内の 1 つ以上のファイルをコピーできません (OperationCanceledException)。
操作が循環しています (InvalidOperationException)。
パスにコロン (:) が含まれています (NotSupportedException)。
パスがシステムで定義されている最大長を超えています (PathTooLongException)。
パス内のファイル名またはフォルダ名にコロン (:) が含まれているか、または形式が無効です (NotSupportedException)。
ユーザーがパスを表示するのに必要なアクセス許可がありません (SecurityException)。
コピー先のファイルは存在しますが、アクセスできません (UnauthorizedAccessException)。
解説
このメソッドは、内容を含めてディレクトリ全体をコピーします。コピー先のディレクトリが存在しないときは、新たに作成されます。同じ名前のディレクトリがコピー先に存在する場合は、2 つのディレクトリの内容が結合されます。コピー時にディレクトリに新しい名前を付けることができます。
ディレクトリ内のファイルをコピーするときに、特定のファイルが原因で例外がスローされることがあります。たとえば、overwrite が False に設定されていて、マージを実行しているときに、既に存在するファイルなどが原因です。このような例外は、スローされると 1 つの例外に統合され、その Data プロパティに IDictionary 形式のエントリが格納されます。このエントリには、ファイル パスまたはディレクトリ パスがキーとなり、特定の例外メッセージがそれに対応する値として格納されます。エントリを列挙するには、For…Each を使用します。
処理手順
My.Computer.FileSystem.CopyDirectory メソッドに関連するタスクの例を次の表に示します。
タスク |
参照項目 |
---|---|
ディレクトリをコピーします。 |
使用例
次のコード例は、 TestDirectory1 というディレクトリを TestDirectory2 というディレクトリにコピーし、既存のファイルを上書きします。
My.Computer.FileSystem.CopyDirectory("C:\TestDirectory1", "C:\TestDirectory2", True)
C:\TestDirectory1 および C:\TestDirectory2 は、実際にコピーするディレクトリのパスと名前およびコピー先の場所に置き換えてください。
必要条件
名前空間 : Microsoft.VisualBasic.MyServices
クラス : FileSystemProxy (FileSystem へのアクセスを可能にします)
アセンブリ : Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll 内)
プロジェクトの種類別の可用性
プロジェクトの種類 |
使用可/不可 |
---|---|
Windows アプリケーション |
可 |
クラス ライブラリ |
可 |
コンソール アプリケーション |
可 |
Windows コントロール ライブラリ |
可 |
Web コントロール ライブラリ |
可 |
Windows サービス |
可 |
Web サイト |
可 |
アクセス許可
以下のアクセス許可が必要な場合があります。
アクセス許可 |
説明 |
---|---|
ファイルとフォルダへのアクセス許可を制御します。関連する列挙値 : Unrestricted。 |
|
ユーザー インターフェイスおよびクリップボードに関連するアクセス許可を制御します。関連する列挙値 : SafeSubWindows。 |
詳細については、「コード アクセス セキュリティ」および「アクセス許可の要求」を参照してください。
参照
処理手順
方法 : Visual Basic でディレクトリにあるファイルのコレクションを取得する
方法 : Visual Basic でディレクトリを移動する
方法 : Visual Basic でディレクトリの内容を移動する
方法 : Visual Basic でファイル パスを解析する
方法 : Visual Basic でファイルの絶対パスを確認する
方法 : Visual Basic でディレクトリが存在するかどうかを確認する