CopyXFiles

概要:

baCopyXFilesはワイルドカード照合を使って2つのフォルダ間で複数ファイルをコピーします。

シンタックス: Result = baCopyXFiles( SourceDir , DestDir , FileSpec , Overwrite )

パラメータ: #string, #string, #string, #string
SourceDir コピー元となるフォルダ。
DestDir コピー先となるフォルダ。
FileSpec どのようなファイルをコピーするか指定します。
Overwrite 上書処理の方法を指定します。下記のいずれかとなります。
 "Always" 常にファイルをコピーします。
 "IfNewer" コピー元ファイルがコピー先ファイルより新しい場合にコピーします。
 "IfNotExist" コピー先ファイルが予め存在しない場合のみコピーします。

戻り値:

#integer
すべてのファイルのコピーに成功した場合は0を、そうでない場合は以下のいずれかになります。
 1 コピー元フォルダ名が無効である
 2 コピー先フォルダ名が無効である
 3 コピー元ファイルの読み込み中にエラーが発生した
 4 コピー先ファイルの書き込み中にエラーが発生した
 5 コピー先ファイルに必要なディレクトリの作成ができなかった
 6 コピー先ファイルが存在している
 7 コピー先ファイルがコピー元ファイルより新しい
 8 指定したワイルドカードに合致するファイルがない

例: OK = baCopyXFiles( "c:\data" , "d:\backup" , "*.dat " , "IfNewer" )

ノート: デフォルトでは、既存の読み込み専用ファイルは上書きしません。しかし"Always"オプションと"
IfNewer" オプションに"+"を追加すると(例 "Always+" あるいは "IfNewer+")読み込み専用ファイルであっても上書きされます。

コピーされないファイルが一つでもあれば戻り値は0になりません。例えば、
baCopyXFiles( "c:\data" , "d:\backup" , "*.*" , "IfNewer" )
と指定した場合、d:\backup内のファイルにc:\data内のファイルよりも新しいものがあれば戻り値は7(コピー先ファイルがコピー元ファイルより新しい)になります。d:\backup内にc:\data内のファイルよりも新しいものが1つも無い場合のみ戻り値が0になります。

パラメータFileSpecはDOSの標準的なワイルドカードのルールに従います。*はファイル名のあらゆる文字と一致することを意味します。
つまり*.*はすべてのファイルをコピーし、*.bmpはbmp拡張子を持つすべてのファイルをコピーします。T*.*はTという文字で始まるすべてのファイルをコピーします。

戻り値6(コピー先ファイルが存在している)はパラメータOverwriteに"IfNotExist"を指定した場合のみ返されます。
戻り値7(コピー先ファイルがコピー元ファイルより新しい )はパラメータOverwriteに"IfNewer"を指定した場合のみ返されます。その他の戻り値はすべてのOverwriteオプションに対して返されます。
"IfNewer"オプションは次のように機能します:2つのファイルが内部にバージョン番号を持つ場合は、その番号を利用して比較します。そうでない場合は2つのファイルの作成日時で比較します。

16bitバージョンではシステムファイルや隠しファイルはコピーされませんが、32bitバージョンでは可能です。新しいファイルはアーカイブ属性のついた読み取り専用ではないファイルになります。

関連項目: baCopyFiles
baXCopy