Hitachi

JP1 Version 12 JP1/Script(Windows(R)用)


8.5.22 SplitFile (ファイルを分割する)

機能

ファイルを指定されたサイズで分割します。

JP1/Script 07-50以降では,ラージファイルが使用できます。

形式
SplitFile ( FilePath , SplitSize , 〔DirPath〕 , 〔Option〕 〔, SplitCnt〕 )
指定項目
FilePath

分割するファイルのフルパスを文字列,または値を格納した変数名で指定します。

SplitSize

分割するサイズを数値,または値を格納した変数名で指定します。サイズはバイト単位で指定します。

ラージファイルでも,分割するサイズの最大値は,2,147,483,647バイトです。

DirPath

分割したファイルを格納するフォルダ名を文字列,または値を格納した変数名で指定します。

この値は省略できます。省略した場合,FilePathで指定されたファイルが存在するフォルダを仮定します。

Option

オプションを指定します。

この値には次の値を指定できます。

意味

Delete

ファイルを分割後,FilePathで指定されたファイルを削除します。

SplitCnt

分割したファイル数を受け取る変数名を指定します。必要がない場合は省略します。

説明

指定されたファイルを指定されたサイズで分割し,分割したファイルを指定されたフォルダに格納します。コマンドが正常に実行された場合は真(True)を,エラーが発生した場合は偽(False)を,コマンドの実行結果として返します。

分割したファイルのファイル名はFilePathで指定されたファイル名の末尾に拡張子.XXX(XXXは001からの数字で,999を超えた場合1000からの数字)を付加した値になります。

補足
  • 環境変数ProgramFiles(通常はシステムドライブのProgram Filesフォルダ),またはWinDir(通常はシステムドライブのWindowsフォルダ)に設定されているフォルダ下のファイル,またはフォルダを指定する場合,注意が必要です。詳細は,「1.8.2 コマンドの動作」を参照してください。

  • 分割したファイルにアクセス権限を設定できます。設定するアクセス権限は,あらかじめ次に示すレジストリキーに設定しておいてください。

〔レジストリキー〕

HKEY_LOCAL_MACHINE\SOFTWARE\Hitachi\JP1/Script\SPTX\Option

〔値名〕

SecurityAttributesSucceed

〔値のデータタイプ〕

REG_DWORD

〔値〕

0:設定しない

1:「上位フォルダのアクセス権を継承する」を設定する。

2:「Everyone:フルコントロール」を設定する。

値が設定されていない場合や上記以外の値が設定された場合は,デフォルトの0を仮定します。

〔設定が有効になるタイミング〕

スクリプトファイルの次回実行時

' ファイル"C:\FDCOPY.TXT"を1.44MBのFDに格納できるように
'分割して,FDに格納する。
' (参考)1.44MBのFD = 1423KB = 1423 * 1024B
'       1.25MBのFD = 1221KB = 1221 * 1024B
'        720KBのFD =  713KB =  713 * 1024B
'        640KBのFD =  640KB =  640 * 1024B
Dim  file1 ,size1 ,splCnt ,filePath
file1 = "FDCOPY.TXT"
size1 = 1423 * 1024
SplitFile ( "C:\"+file1 ,size1 ,_TEMP_ , ,splCnt )
 
Dim  cnt1
 
' 分割したファイル数分,FDを作成する
For  cnt1 = 1 To splCnt
  filePath = _TEMP_+file1
  Select Case  Len ( cnt1 )
    Case 1
      filePath = filePath+".00"+cnt1
    Case 2
      filePath = filePath+".0"+cnt1
    Case Else
      filePath = filePath+"."+cnt1
  End Select
 
  ' 一時ファイルをFDへコピー
  Copy ( filePath ,"A:\" ,Overwrite )
  If  splCnt - cnt1 <= 0  Then
    MessageBox ( "FDへの複写が終了しました。" ,OK )
    Exit For
  End
  MessageBox ( cnt1+1+"枚目のFDに交換してください。" ,OKCancel )
  If  _MSG_RTN_ = Cancel  Then
    Exit For
  End
Next
対象バージョン

JP1/Script 05-10以降