CRIWARE Unity Plugin Manual  Last Updated: 2022-08-24
CriFsBinder クラス

CPKファイル内のコンテンツへのアクセスを行うためのモジュールです。 [詳解]

CriDisposableを継承しています。

クラス

struct  ContentsFileInfo
 コンテンツファイル情報構造体 [詳解]
 

公開型

enum  Status {
  None, Analyze, Complete, Unbind,
  Removed, Invalid, Error
}
 バインダの状態を示す値です。 [詳解]
 

公開メンバ関数

override void Dispose ()
 バインダを破棄します。 [詳解]
 
uint BindCpk (CriFsBinder srcBinder, string path)
 CPKファイルをバインドします。 [詳解]
 
uint BindDirectory (CriFsBinder srcBinder, string path)
 ディレクトリパスをバインドします。 [詳解]
 
uint BindFile (CriFsBinder srcBinder, string path)
 ファイルをバインドします。 [詳解]
 
uint BindFileSection (CriFsBinder srcBinder, string path, ulong offset, int size, string sectionName)
 ファイルの一部分をバインドし、その箇所を仮想的なファイルとして扱えるよう設定します。 [詳解]
 
long GetFileSize (string path)
 ファイルサイズを取得します。 [詳解]
 
long GetFileSize (int id)
 ファイルサイズを取得します。 [詳解]
 
bool GetContentsFileInfo (string path, out ContentsFileInfo info)
 CPKコンテンツファイル情報を取得します。 [詳解]
 
bool GetContentsFileInfo (int id, out ContentsFileInfo info)
 CPKコンテンツファイル情報を取得します。 [詳解]
 

静的公開メンバ関数

static void Unbind (uint bindId)
 バインド済みのコンテンツをアンバインドします。 [詳解]
 
static Status GetStatus (uint bindId)
 バインダのステータスを取得します。 [詳解]
 
static bool GetContentsFileInfoByIndex (uint bindId, int index, int numFiles, out ContentsFileInfo[] info)
 CPKコンテンツファイル情報を取得します。 [詳解]
 
static int GetNumContentsFiles (uint bindId)
 CPKコンテンツファイルの総数を取得します。 [詳解]
 
static void SetPriority (uint bindId, int priority)
 バインドIDに対して検索優先度を設定します。 [詳解]
 

詳解

CPKファイル内のコンテンツへのアクセスを行うためのモジュールです。

説明:
CriFsBinder(バインダ)は、ファイルを効率良く扱うためのデータベースモジュールです。
CPKファイルやディレクトリをバインダに結びつける(バインドする)ことで、 CPKファイルやディレクトリ内のコンテンツ情報が取得可能となります。

列挙型メンバ詳解

enum Status
strong

バインダの状態を示す値です。

参照
CriFsBinder::GetStatus
列挙値
None 

停止中

Analyze 

バインド処理中

Complete 

バインド完了

Unbind 

アンバインド処理中

Removed 

アンバインド完了

Invalid 

バインド無効

Error 

バインド失敗

関数詳解

override void Dispose ( )
inline

バインダを破棄します。

注意:
バインド処理中にバインダを破棄したり、Unbind処理を行わずにバインダを破棄した場合、 本関数内で処理が長時間ブロックされる可能性があります。
uint BindCpk ( CriFsBinder  srcBinder,
string  path 
)
inline

CPKファイルをバインドします。

引数
srcBinderバインドするCPKファイルにアクセスするためのバインダ
pathバインドするCPKファイルのパス名
戻り値
バインドID
説明:
CPKファイルを利用するには、CPKファイルをバインドする必要があります。
本関数は、バインダにCPKファイルをバインドし、バインドIDを返します。

srcBinderには、CPKファイルを検索するためのバインダを指定します。
srcBinderがnullの場合、デフォルトデバイスを使用します。

バインドを開始できない場合、バインドIDは0が返されます。
バインドIDに0以外が返された場合は内部リソースを確保していますので、
不要になったバインドIDは必ずアンバインドしてください。
(バインド中のCPKファイルは、オープンされた状態で保持されます。)

本関数は即時復帰関数です。
本関数から復帰した直後は、CPKのバインドはまだ完了しておらず、 CPKのコンテンツファイルへのアクセスは行えません。
バインド状態が完了( Complete )となった後に、 CPKは利用可能となります。
バインド状態は CriWare.CriFsBinder::GetStatus 関数で取得します。
参照
CriFsBinder::GetStatus, CriFsBinder::Unbind
uint BindDirectory ( CriFsBinder  srcBinder,
string  path 
)
inline

ディレクトリパスをバインドします。

引数
srcBinderバインドするディレクトリにアクセスするためのバインダ
pathバインドするディレクトリのパス名
説明:
ディレクトリパス名をバインドします。
バインドするディレクトリ名は絶対パスで指定してください。

バインド時に指定されたディレクトリが存在するか否かはチェックしていません。
バインダ内に保持されるのはディレクトリパスだけで、 指定されたディレクトリ内のファイルをオープン状態にするものではありません。
よってバインドに失敗しない限り、本関数から復帰時にはバインドIDのバインド状態は完了 ( Complete )となります。

バインドを開始できない場合、バインドIDは0が返されます。
バインドIDに0以外が返された場合は内部リソースを確保していますので、
不要になったバインドIDは必ずアンバインドしてください。
注意:
本関数は開発支援用のデバッグ関数です。
本関数を使用した場合、以下の問題が発生する可能性があります。
注意:
マスターアップ時には本関数をアプリケーション中で使用しないようご注意ください。
(ディレクトリ内のデータをCPKファイル化して CriWare.CriFsBinder::BindCpk 関数でバインドするか、 またはディレクトリ内のファイルを全て CriWare.CriFsBinder::BindFile 関数でバインドしてください。)
参照
CriFsBinder::GetStatus, CriFsBinder::Unbind, CriFsBinder::BindCpk, CriFsBinder::BindFile
uint BindFile ( CriFsBinder  srcBinder,
string  path 
)
inline

ファイルをバインドします。

引数
srcBinderバインドするファイルにアクセスするためのバインダ
pathバインドするファイルのパス名
戻り値
バインドID
説明:
ファイルをバインドし、バインドIDを返します。
(srcBinderのバインダからpathで指定されたファイルを検索してバインドします。)
srcBinderがnullの場合、デフォルトデバイスを使用します。

バインドを開始できない場合、バインドIDは0が返されます。
バインドIDに0以外が返された場合は内部リソースを確保していますので、
不要になったバインドIDは必ずアンバインドしてください。
(バインド中のCPKファイルは、オープンされた状態で保持されます。)

本関数は即時復帰関数です。
本関数から復帰した直後はファイルのバインドはまだ完了しておらず、 バインドIDを利用したファイルへのアクセスは行えません。
バインドIDのバインド状態が完了( Complete )となった後に、 ファイルは利用可能となります。
バインド状態は CriWare.CriFsBinder::GetStatus 関数で取得します。
参照
CriFsBinder::GetStatus, CriFsBinder::Unbind
uint BindFileSection ( CriFsBinder  srcBinder,
string  path,
ulong  offset,
int  size,
string  sectionName 
)
inline

ファイルの一部分をバインドし、その箇所を仮想的なファイルとして扱えるよう設定します。

引数
srcBinderバインドするファイルにアクセスするためのバインダ
pathバインドするファイルのパス名
offsetデータの開始位置(バイト)
sizeデータサイズ(バイト)
sectionNameセクション名
戻り値
バインドID
説明:
ファイルの一部分をバインドし、バインドIDを返します。
(srcBinderのバインダからpathで指定されたファイルを検索してバインドします。)
srcBinderがnullの場合、デフォルトデバイスを使用します。

バインドを開始できない場合、バインドIDは0が返されます。
バインドIDに0以外が返された場合は内部リソースを確保していますので、
不要になったバインドIDは必ずアンバインドしてください。
(バインド中のCPKファイルは、オープンされた状態で保持されます。)
(ロード時のパスにはセクション名を指定する。)

本関数は即時復帰関数です。
本関数から復帰した直後はファイルのバインドはまだ完了しておらず、 バインドIDを利用したファイルへのアクセスは行えません。
バインドIDのバインド状態が完了( Complete )となった後に、 ファイルは利用可能となります。
バインド状態は CriWare.CriFsBinder::GetStatus 関数で取得します。
参照
CriFsBinder::GetStatus, CriFsBinder::Unbind
static void Unbind ( uint  bindId)
inlinestatic

バインド済みのコンテンツをアンバインドします。

引数
bindIdバインドID
説明:
バインド済みのコンテンツをアンバインドします。
どのコンテンツをアンバインドするかは、バインドIDで指定します。
注意:
本関数は完了復帰関数です。
必要に応じてファイルのクローズ処理を行いますので、 実行環境により数msecかかる場合があります。

アンバインドするバインドIDに依存している他のバインドIDも、 同時にアンバインドされます(暗黙的アンバインド)。
例えば、CPKバインドIDのコンテンツファイルをファイルバインドしているバインドIDは、 参照元のCPKバインドIDがアンバインドされると、暗黙的にアンバインドされます。
参照
CriWare.CriFsBinder::BindCpk, CriFsBinder::BindFile
static Status GetStatus ( uint  bindId)
inlinestatic

バインダのステータスを取得します。

戻り値
ステータス
参照
CriFsBinder::Status
long GetFileSize ( string  path)
inline

ファイルサイズを取得します。

引数
pathファイルのフルパス
戻り値
ファイルのサイズ
説明:
指定されたファイルのファイルサイズを取得します。
バインド状態が Complete であるバインドIDが検索対象となります。

指定されたファイルが存在しない場合、負値が返されます。
注意:
CriWare.CriFsBinder::BindDirectory 関数でディレクトリをバインドした場合、 本関数内で長時間処理がブロックされる場合があります。
参照
CriFsBinder::GetFileSize(int)
long GetFileSize ( int  id)
inline

ファイルサイズを取得します。

引数
idファイルID
戻り値
ファイルのサイズ
説明:
ファイルサイズを取得します。
ID情報つきCPKファイルがバインドされている必要があります。
バインド状態が Complete であるバインドIDが検索対象となります。

指定されたファイルが存在しない場合、負値が返されます。
参照
CriFsBinder::GetFileSize(string)
bool GetContentsFileInfo ( string  path,
out ContentsFileInfo  info 
)
inline

CPKコンテンツファイル情報を取得します。

引数
pathファイルのフルパス
infoコンテンツファイル情報
戻り値
取得に成功したか
説明:
ID+ファイル名情報付きCPKファイルから、指定されたファイル名のファイル情報を取得します。
指定されたファイルを格納しているCPKが、ID+ファイル名情報付CPKである必要があります。
指定したバインダハンドルに、同じ名前のファイルが複数存在する場合、最初に見付けたファイルを 格納しているCPKが選択されます。
参照
CriFsBinder::GetContentsFileInfo(int, out ContentsFileInfo)
bool GetContentsFileInfo ( int  id,
out ContentsFileInfo  info 
)
inline

CPKコンテンツファイル情報を取得します。

引数
idファイルID
infoコンテンツファイル情報
戻り値
取得に成功したか
説明:
ID+ファイル名情報付きCPKファイルから、指定されたファイルIDのファイル情報を取得します。
指定されたファイルを格納しているCPKが、ID+ファイル名情報付CPKである必要があります。
指定したバインダハンドルに、同じIDのファイルが複数存在する場合、最初に見付けたファイルを 格納しているCPKが選択されます。
参照
CriFsBinder::GetContentsFileInfo(string, out ContentsFileInfo)
static bool GetContentsFileInfoByIndex ( uint  bindId,
int  index,
int  numFiles,
out ContentsFileInfo[]  info 
)
inlinestatic

CPKコンテンツファイル情報を取得します。

引数
bindIdバインドID
index情報を取得するコンテンツファイルの先頭インデクス
numFiles情報を取得するコンテンツファイル数
infoコンテンツファイル情報の配列
戻り値
取得に成功したか
説明:
ID+ファイル名情報付きCPKファイルから、指定されたインデクスから指定個数分ののファイル情報を取得します。
インデクスはCPK作成時、コンテンツファイルに対して0から割り振られます。
index 及び numFiles に指定できる最大値は、 CriWare.CriFsBinder::GetNumContentsFiles で取得可能なファイル総数になります。
参照
CriFsBinder::GetContentsFileInfo(string, out ContentsFileInfo), CriFsBinder::GetNumContentsFiles
static int GetNumContentsFiles ( uint  bindId)
inlinestatic

CPKコンテンツファイルの総数を取得します。

引数
bindIdバインドID
戻り値
コンテンツファイル数
説明:
ID+ファイル名情報付きCPKファイルから、含まれるファイルの総数を取得します。
本関数の戻り値が、同じバインドIDに対して CriWare.CriFsBinder::GetContentsFileInfoByIndex 関数で指定可能な 情報を取得するコンテンツファイル数の最大値になります。
参照
CriFsBinder::GetContentsFileInfoByIndex
static void SetPriority ( uint  bindId,
int  priority 
)
inlinestatic

バインドIDに対して検索優先度を設定します。

引数
bindIdバインドID
priority優先度
説明:
バインドIDに対し、バインダ内での検索優先度を設定します。
優先度は 0 が最低で、値が大きくなるほど検索優先度は高くなります。
同じ優先度のバインドIDは先にバインドした方が優先して検索対象になります。
優先度未設定の場合、デフォルトの優先度は 0 です。
バインド状態が Complete であるバインドIDが対象となります。

このクラス詳解は次のファイルから抽出されました: