次の方法で共有


My.Computer.FileSystem.CopyFile メソッド

更新 : 2007 年 11 月

ファイルを新しい場所にコピーします。

' Usage
My.Computer.FileSystem.CopyFile(sourceFileName ,destinationFileName)
My.Computer.FileSystem.CopyFile(sourceFileName ,destinationFileName ,overwrite)
My.Computer.FileSystem.CopyFile(sourceFileName ,destinationFileName ,showUI)
My.Computer.FileSystem.CopyFile(sourceFileName ,destinationFileName ,showUI ,onUserCancel)
' Declaration
Public Sub CopyFile( _
   ByVal sourceFileName As String, _
   ByVal destinationFileName As String _
)
' -or-
Public Sub CopyFile( _
   ByVal sourceFileName As String, _
   ByVal destinationFileName As String, _
   ByVal overwrite As Boolean _
)
' -or-
Public Sub CopyFile( _
   ByVal sourceFileName As String, _
   ByVal destinationFileName As String, _
   ByVal showUI As UIOption _
)
' -or-
Public Sub CopyFile( _
   ByVal sourceFileName As String, _
   ByVal destinationFileName As String, _
   ByVal showUI As UIOption, _
   ByVal onUserCancel As UICancelOption _
)

パラメータ

  • sourceFileName
    String。コピーするファイルを指定します。必ず指定します。

  • destinationFileName
    String。ファイルをコピーする場所を指定します。必ず指定します。

  • overwrite
    Boolean。既存のファイルを上書きするかどうかを指定します。既定値は False です。必ず指定します。

  • showUI
    UIOption。処理の進行状況を視覚的に表示するかどうかを指定します。既定値は UIOption.OnlyErrorDialogs です。必ず指定します。

  • onUserCancel
    UICancelOption。操作中にユーザーが [キャンセル] ボタンをクリックしたときに実行する処理を指定します。既定値は ThrowException です。必ず指定します。

例外

例外がスローされる可能性のある状況を次に示します。

  • パスが無効です。1) 長さが 0 の文字列である、2) 空白だけが含まれている、3) 無効な文字が含まれている、4) デバイス パスである (\\\\.\\ で開始されている)、のいずれかの理由が考えられます (ArgumentException)。

  • 絶対パスが取得できませんでした (ArgumentException)。

  • destinationFileName にパス情報が格納されています (ArgumentException)

  • パスが Nothing であるため、有効ではありません (ArgumentNullException)。

  • destinationFileName は、Nothing または空の文字列です (ArgumentNullException)。

  • ソース ファイルが有効でないか存在しません (FileNotFoundException)。

  • 結合されたパスが、既存のディレクトリを指しています (IOException)。

  • コピー先のファイルが存在し、overwrite が False に設定されています (IOException)。

  • ユーザーがファイルにアクセスするのに必要なアクセス許可がありません (IOException)。

  • コピー先のディレクトリにある同じ名前のファイルが使用中です (IOException)。

  • パス内のファイル名またはディレクトリ名にコロン (:) が含まれているか、または形式が無効です (NotSupportedException)。

  • UICancelOption が ThrowException に設定されており、ユーザーが操作をキャンセルしました (OperationCanceledException)。

  • UICancelOption が ThrowException に設定されており、未指定の I/O エラーが発生しました (OperationCanceledException)。

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

  • ユーザーに必要なアクセス許可がありません (UnauthorizedAccessException)。

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

解説

CopyFile は、アクセス制御エントリ (ACE: Access Control Entries) を保持しません。新たに作成したファイルは、ファイルのあるディレクトリの既定の ACE を継承します。

処理手順

My.Computer.FileSystem.CopyFile メソッドに関連するタスクの例を次の表に示します。

タスク

参照項目

ファイルを同じディレクトリにコピーします。

方法 : Visual Basic でファイルのコピーを同じディレクトリに作成する

ファイルを別のディレクトリにコピーします。

方法 : Visual Basic でファイルのコピーを別のディレクトリに作成する

使用例

次のコード例は、 Test.txt というファイルを TestFiles2 というディレクトリにコピーします。既存のファイルの上書きは行いません。

My.Computer.FileSystem.CopyFile _
("C:\UserFiles\TestFiles\test.txt", _
"C:\UserFiles\TestFiles2")

ファイルのパスは、実際のコードで使用するパスに置き換えてください。

次のコード例は、 Test.txt というファイルを TestFiles2 というディレクトリにコピーし、ファイル名を NewFile.txt に変更します。

My.Computer.FileSystem.CopyFile _
("C:\UserFiles\TestFiles\test.txt", _
"C:\UserFiles\TestFiles2", "NewFile.txt", FileIO.UICancelOption.DoNothing)

ファイルのパスは、実際のコードで使用するパスに置き換えてください。

必要条件

名前空間 : Microsoft.VisualBasic.MyServices

クラス : FileSystemProxy (FileSystem へのアクセスを可能にします)

アセンブリ : Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll 内)

プロジェクトの種類別の可用性

プロジェクトの種類

使用可/不可

Windows アプリケーション

クラス ライブラリ

コンソール アプリケーション

Windows コントロール ライブラリ

Web コントロール ライブラリ

Windows サービス

Web サイト

アクセス許可

以下のアクセス許可が必要な場合があります。

アクセス許可

説明

EnvironmentPermission

すべての環境変数へのアクセス許可を制御します。関連する列挙値 : Unrestricted

FileIOPermission

ファイルとフォルダへのアクセス許可を制御します。関連する列挙値 : Unrestricted

RegistryPermission

レジストリ変数へのアクセス許可を制御します。関連する列挙値 : Unrestricted

UIPermission

ユーザー インターフェイスおよびクリップボードに関連するアクセス許可を制御します。関連する列挙値 : SafeSubWindows

詳細については、「コード アクセス セキュリティ」および「アクセス許可の要求」を参照してください。

参照

処理手順

方法 : Visual Basic で特定のパターンを持つファイルをディレクトリにコピーする

方法 : Visual Basic でファイルのコピーを同じディレクトリに作成する

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

方法 : Visual Basic でファイルの名前を変更する

参照

My.Computer.FileSystem オブジェクト

UICancelOption 列挙型