CopyFile メソッド

ファイルを別の場所へコピーします。

object.CopyFile ( source, destination[, overwrite] ) 

引数

  • object
    必ず指定します。FileSystemObject オブジェクトの名前を指定します。
  • source
    必ず指定します。コピーするファイルを表す文字列を指定します。1 つ以上のファイルを指定するためにワイルドカード文字を使用することもできます。
  • destination
    必ず指定します。引数 source で指定したファイルのコピー先を表す文字列を指定します。ワイルドカード文字は使用できません。
  • overwrite
    省略可能です。既存ファイルを上書きするかどうかを示すブール値を指定します。真 (true) を指定すると既存フォルダ内のファイルは上書きされ、偽 (false) を指定すると上書きされません。既定値は、真 (true) です。引数 destination に指定したコピー先が読み取り専用の属性を持っていた場合は、引数 overwrite に指定した値とは関係なく CopyFile メソッドの処理は失敗するので、注意する必要があります。

解説

ワイルドカード文字は、引数 source に指定する最後の構成要素内でのみ使用できます。次のような使い方が可能です。

fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFile ("c:\\mydocuments\\letters\\*.doc", "c:\\tempfolder\\")
[VBScript]
FileSystemObject.CopyFile "c:\mydocuments\letters\*.doc", "c:\tempfolder\"

次のような使い方はできません。

fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFile ("c:\\mydocuments\\*\\R1???97.xls", "c:\\tempfolder")
[VBScript]
FileSystemObject.CopyFile "c:\mydocuments\*\R1???97.xls", "c:\tempfolder"

引数 source にワイルドカード文字を使用したとき、および引数 destination がパスの区切り文字 (\) で終わっているとき、引数 destination には既存フォルダを指定したと判断され、条件に一致するファイルがそのフォルダ内へコピーされます。それ以外のときは、引数 destination には作成するファイルの名前を指定したと判断されます。いずれの場合も、コピーされる各ファイルで発生する処理の実行は 3 種類あります。

  • 引数 destination に指定したファイルが存在しない場合、引数 source に指定したファイルがコピーされます。これが通常の場合です。
  • 引数 destination に指定したファイルが存在する場合、引数 overwrite に偽 (false) を指定しているとエラーが発生します。真 (true) を指定していると引数 source に指定したファイルがコピーされ、既存ファイルは上書きされます。
  • 引数 destination がディレクトリの場合、エラーが発生します。

引数 source でワイルドカード文字を使用した指定がどのファイルとも一致しなかった場合も、エラーが発生します。CopyFile メソッドは、最初のエラーが発生した時点で処理を中止します。エラーが発生するまでに行った処理を取り消したり元に戻したりする処理は一切行われません。

参照

Copy メソッド | CopyFolder メソッド | CreateTextFile メソッド | DeleteFile メソッド | MoveFile メソッド

対象: FileSystemObject オブジェクト