CopyFolder メソッド

フォルダを再帰的に別の場所へコピーします。

object.CopyFolder ( source, destination[, overwrite] ); 

引数

  • object
    必ず指定します。FileSystemObject オブジェクトの名前を指定します。
  • source
    必ず指定します。フォルダを表す文字列を指定します。1 つ以上のフォルダを指定するためにワイルドカード文字を使用できます。
  • destination
    必ず指定します。引数 source で指定したフォルダおよびサブフォルダのコピー先を表す文字列を指定します。ワイルドカード文字は使用できません。
  • overwrite
    省略可能です。既存フォルダを上書きするかどうかを示すブール値を指定します。真 (true) を指定すると既存フォルダ内のファイルは上書きされ、偽 (false) を指定すると上書きされません。既定値は、真 (true) です。

解説

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

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

次の方法では使用できません。

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

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

  • 引数 destination に指定したフォルダが存在しない場合、引数 source に指定したフォルダおよびそのフォルダ内のすべてのファイルとフォルダがコピーされます。これが通常の場合です。
  • 引数 destination に指定したファイルが存在する場合、エラーが発生します。
  • 引数 destination がディレクトリの場合、指定したフォルダおよびそのフォルダ内のすべてのファイルとフォルダをコピーしようとします。引数 source で指定したフォルダ内のファイルと同じ名前のファイルが引数 destination で指定したフォルダ内に既にある場合、引数 overwrite に偽 (false) を指定しているとエラーが発生します。真 (true) を指定していると、ファイルがコピーされ、既存ファイルは上書きされます。
  • 引数 destination に指定したのが読み取り専用のディレクトリの場合、引数 overwrite に偽 (false) を指定していて、既存の読み取り専用ファイルをコピー先ディレクトリ内へコピーしようとすると、エラーが発生します。

引数 source でワイルドカード文字を使用した指定がどのフォルダとも一致しなかった場合も、エラーが発生します。

CopyFolder メソッドは、最初のエラーが発生した時点で処理を中止します。エラーが発生するまでに行った処理を取り消したり元に戻したりする処理は一切行われません。

参照

CopyFile メソッド | Copy メソッド | CreateFolder メソッド | DeleteFolder メソッド | MoveFolder メソッド

対象: FileSystemObject オブジェクト