XCopyProgress
|
||||||||||||||||||||||
概要: | baXCopyProgressはサブディレクトリまで含めて複数ファイルをコピーします。その間プログレスダイアログボックスを表示します。 |
|||||||||||||||||||||
シンタックス: | Result = baXCopyProgress( SourceDir, DestDir,
FileSpec, Overwrite,
MakeDir, Title,
ButtonText, Flags
) |
|||||||||||||||||||||
パラメータ: | #string, #string, #string, #string, #integer, #string, #string, #integer SourceDir コピー元のフォルダ。 DestDir コピー先のフォルダ。 FileSpec どのようなタイプのファイルをコピーするか指定します。 Overwrite 上書き処理の方法を指定します。次のいずれかになります。
Title ダイアログボックスのタイトル。 ButtonText キャンセルボタンで使用するテキスト。 Flags ダイアログの挙動を変更します。詳細はノートをご覧ください。 |
|||||||||||||||||||||
戻り値: | #integer ファイルのコピーに成功した場合は0を返します。それ以外は下記のいずれかになります。
|
|||||||||||||||||||||
例: | OK = baXCopyProgress( "c:\data" , "d:\backup"
, "*.dat", "IfNewer", true, "ファイルをバックアップしています...
", "Cancel", 0 ) |
|||||||||||||||||||||
ノート: | デフォルトでは、既存の読み込み専用ファイルは上書きしません。しかし"Always"オプションと"IfNewer"オプションに"+"を追加すると(例
"Always+"または"IfNewer+")読み込み専用ファイルであっても上書きされます。 コピーされないファイルが一つでもあれば戻り値は0になりません。例えば、 baXCopyProgress( "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つのファイルの作成日時で比較します。 Flagsには7つの値が定義されています。
いずれのフラグも併用してダイアログボックスをカスタマイズすることができます。 コールバックハンドラを設定するにはCP_CALLBACKフラグを使用してください。CP_NODIALOGフラグを併用して、オリジナルのダイアログを組み込むのが一般的でしょう。このフラグを使用するには 'baCopyProgressUpdate'というハンドラを追加する必要があります。このハンドラはムービースクリプトでなければなりません。 またこのハンドラには2つのパラメータが渡されます。これまでにコピーされたパーセンテージおよび現在コピーされているファイルです。このハンドラはコピーされたパーセンテージが1増えるか、新しいファイルがコピーされるごとに呼び出されます。CP_SIZEUPDATEを指定した場合、パーセンテージではなくおよそ64Kのデータがコピーされるごとに呼び出されます。 ハンドラ内で1を返すとコピーを中止することができます。0を返すか、何も返さなければコピーが継続されます。下記はハンドラのサンプルです。update〜ファンクションはオリジナルのプログレスダイアログの更新に使用するものです。 on baCopyProgressUpdate percentage, filename updateProgressBar percentage updateStatus fileName if keyPressed( " " ) then --ユーザがスペースバーを押した場合コピーを中止する return 1 end if end |
|||||||||||||||||||||
関連項目: | baCopyXFilesProgress baCopyFileProgress baCopyXFiles baCopyFile baXCopy |