概要
外部ストレージ内のファイルやフォルダをコピーまたは移動できます。
パラメータ1で指定したファイルやフォルダを、パラメータ2で指定したファイルやフォルダにコピーまたは移動します。
コピー先に同名のファイルやフォルダが存在した場合に上書きするかどうか、またサブフォルダ内のファイルもコピーするかどうかの設定ができます。
ファイルコピーが使用できる機種については、以下を参照してください。
1.5 機種別サポート機能一覧
書式
_FileCopy(コピー元フォルダ/ファイル名, コピー先フォルダ/ファイル名, モード1, モード2)
パラメータ1
コピー元フォルダ/ファイル名:固定文字列、内部デバイス、データバッファ
パラメータ2
コピー先フォルダ/ファイル名:固定文字列、内部デバイス、データバッファ
パラメータ3
モード1:数値(0,1,2)
値 |
モード |
内容 |
---|---|---|
0 |
上書き禁止 |
コピー先に同名ファイルが存在する場合は上書きしません。 |
1 |
上書き許可 |
コピー先に同名ファイルが存在する場合は上書きします。 |
2 |
切り取り |
コピー先に同名ファイルが存在する場合は上書きします。コピー完了後、コピー元のファイルを削除します。 |
パラメータ4
モード2:数値(0,1)
値 |
モード |
内容 |
---|---|---|
0 |
コピーする |
パラメータ1でフォルダを指定した場合にサブフォルダの内容もコピーします。 |
1 |
コピーしない |
サブフォルダの内容はコピーしません。 |
コピー先にある同名ファイルの属性が読み取り専用になっている場合は、パラメータ3の設定にかかわらず上書きされません。
コピー元のファイルの属性が読み取り専用になっている場合は、パラメータ3が「切り取り」でも、コピー元のファイルは削除されません。
読み取り専用のファイルをコピーした場合、コピー後のファイルの読み取り専用属性は解除されます。ただし、IPCシリーズまたはSP5000シリーズオープンボックスをご使用の場合は解除されません。読み取り専用のままです。
コピー後のファイルの日時情報はコピーしたときの日時になります。ただし、IPCシリーズまたはSP5000シリーズオープンボックスをご使用の場合はコピー元と同じ日時になります。
パラメータ1、パラメータ2は外部ストレージのルートフォルダから指定してください。
USBストレージ : "USB\DATA"
CFカード : "CF\DATA"
SDカード:"SD\DATA"
IPCシリーズまたはSP5000シリーズオープンボックスをご使用の場合、記述したパスと実際のパスは異なります。記述したルートフォルダ部分(例:\USB)が、システム設定[本体設定]-[WinGP設定]の[参照先フォルダ指定]で設定したパス(例:”C:\PROFACE\DATA”)になります。
例:記述したパス”\USB\DATA2”→実際のパス”C:\PROFACE\DATA\DATA2”
パラメータ1、パラメータ2で指定できる最大文字数は半角90文字/全角45文字です。最大文字数を超える文字列を指定した場合、半角90文字/全角45文字までの文字列が設定されます。
IPCシリーズまたはSP5000シリーズオープンボックスをご使用の場合は、[参照先フォルダ指定]のパスを含めて247文字以下に設定してください。
パラメータ1はワイルドカード(*)が使用できます。
例:”\USB\DATA\*.BIN”(USBストレージの\DATAフォルダにあるBINファイルをすべて指定する)
拡張子やテキストにワイルドカードを直接つなげる書式(data*など)は使用できません。
パラメータ1でフォルダ名または複数のファイルを指定し、上書き禁止でコピーを行った場合、同名ファイル以外のファイルのみコピーされます。
コピー中にエラーが発生した場合、処理は中断されます。ただし、ファイルコピー関数以降に記述したスクリプトは実行されます。
ファイルコピー関数を実行した場合、コピー処理が完了するまで転送やオフラインモードへの移行はできません。
パラメータ3が「切り取り」で、ライトエラーが発生した場合は、コピー元のファイルやフォルダは削除されません。
記述例
_FileCopy("\USB\DATA\DATA0001.BIN" , "\CF\BACKUP\DATA0001.BIN" , 0 , 0)
上記の例は、GP3000シリーズでUSBストレージの\DATAフォルダにある「DATA0001.BIN」ファイルを、CFカードの\BACKUPフォルダに上書き禁止でコピーします。
コピー先およびコピー元のファイル名やフォルダ名に内部デバイスを指定することで間接的に指定することもできます。
内部デバイスを使用してファイル名を指定する場合
_FileCopy([w:[INTERNAL]LS0100] , [w:[INTERNAL]LS0200] , 0 , 0)
上記式を実行することで、LS0100からコピー元ファイル名、LS0200からコピー先フォルダ名を読み出してファイルをコピーします。
ファイル名やフォルダ名の最後にはNULL文字を格納してください。
データの格納順序については以下を参照してください。
22.10.7 データ格納モードについて
ファイルコピーステータス
ファイルコピーの処理状況は内部デバイスのLS9160で確認できます。コピー中にエラーが発生するとエラーコードが格納され、処理は中断されます。
ビット12~15 |
内容 |
詳細 |
---|---|---|
0 |
正常終了 |
処理が正常に終了した |
1 |
正常終了(上書きあり) |
フォルダコピーまたは複数ファイルコピーの場合に、処理が正常に終了したが、モード1が「上書き禁止」のためコピーされなかったファイルがある |
2 |
パラメータエラー |
パラメータに間違いがある |
3 |
予約 |
- |
4 |
CFカードなし/SDカードなし |
CFカード/SDカードが表示器に挿入されていない、またはCFカードカバーが開いている |
5 |
リードエラー |
外部ストレージからの読み出しに失敗した コピーするファイルやフォルダが存在しない |
6 |
ライトエラー |
外部ストレージへの書き込みに失敗した、または空き容量がなかった 単一ファイルコピーでモード1が「上書き禁止」の場合に、コピー先に同名ファイルが存在する 単一ファイルコピーでパラメータ3(モード1)が「上書き許可」または「切り取り」の場合に、コピー先の同名ファイルの属性が読み取り専用になっている フォルダコピーまたは複数ファイルコピーの場合に、ファイルの属性が読み取り専用になっているためコピーされなかったファイルがある SDカードが書き込み禁止になっている |
7 |
CFカードエラー |
CFカードがこわれている、フォーマットされていない、フォーマットが正しくないため認識できないなど |
8 |
削除エラー |
モード1が「切り取り」の場合に、コピー元のファイルの属性が読み取り専用になっている、またはコピー元のファイルが削除できない SDカードが書き込み禁止になっている |
9-13 |
予約 |
- |
14 |
USBストレージなし |
USBストレージが表示器に挿入されていない |
15 |
USBストレージエラー |
USBストレージがこわれている、フォーマットされていない、フォーマットが正しくないため認識できないなど |