フォルダをコピーする

フォルダをコピーするには FileSystemObject の CopyFolder メソッドを使用します。

書式
Call obj1.CopyFolder( 文字列1, 文字列2 )
Call obj1.CopyFolder( 文字列1, 文字列2, 真偽値1 )
引数・戻り値
オブジェクト(obj1) FileSystemObject オブジェクト。
CreateObject 関数で生成する。
戻り値 なし
引数1(文字列1) コピー元のフォルダ名
相対パスまたは絶対パスで指定

ワイルドカードを使用した指定も可能
(例)"*.txt"、"test_*"
引数2(文字列2) コピー先のフォルダ名
相対パスまたは絶対パスで指定
引数3(真偽値1) 上書きモードを指定
True:同名フォルダがある場合、上書きする
False:同名フォルダがある場合、エラーとする
省略した場合、True が指定される
True とした場合でも、コピー先に「読み取り専用」が設定されている場合、上書きせずにエラーとなる
備考

VBScript ではファイルとフォルダは区別されます。
そのためファイルをコピーするには CopyFolder ではなく CopyFile を使用します。
フォルダをコピーせずに移動するには MoveFolder を使用します。

サンプルコード1
'変数を宣言
Dim str_from
Dim str_to

str_from = ".\test"
str_to   = ".\backup\test"

Set objFS = CreateObject("Scripting.FileSystemObject")

'フォルダを上書きコピーする
Call objFS.CopyFolder(str_from, str_to)
サンプルコード2
'変数を宣言
Dim str_from
Dim str_to

str_from = ".\test"
str_to   = ".\backup\test"

Set objFS = CreateObject("Scripting.FileSystemObject")

'フォルダをコピーするが、コピー先のフォルダが
'存在する場合は実行時エラーとする
Call objFS.CopyFolder(str_from, str_to, False)
サンプルコード3
'変数を宣言
Dim str_from
Dim str_to

str_from = ".\test_*"
str_to   = ".\backup"

Set objFS = CreateObject("Scripting.FileSystemObject")

'"test_" で始まるフォルダをすべて上書きコピーする
Call objFS.CopyFolder(str_from, str_to)
関連カテゴリー
C / ファイルシステムオブジェクト


スポンサード リンク

VBScript お役たち リファレンス

Copyright (C) 2007 VBScript お役たち リファレンス All Rights Reserved.