CRIWARE Unity Plugin Manual  Last Updated: 2024-07-12
CriFsBinder类 参考

是用于存取CPK文件内的内容的模块。 更多...

继承自 CriDisposable .

struct  ContentsFileInfo
 内容文件信息结构体 更多...
 

Public 类型

enum  Status {
  None, Analyze, Complete, Unbind,
  Removed, Invalid, Error
}
 用于显示Binder状态的值。 更多...
 

Public 成员函数

override void Dispose ()
 丢弃Binder。 更多...
 
uint BindCpk (CriFsBinder srcBinder, string path)
 Bind CPK文件。 更多...
 
uint BindDirectory (CriFsBinder srcBinder, string path)
 Bind目录路径。 更多...
 
uint BindFile (CriFsBinder srcBinder, string path)
 Bind文件。 更多...
 
uint BindFileSection (CriFsBinder srcBinder, string path, ulong offset, int size, string sectionName)
 Bind文件的其中一部分,将其当作虚拟文件来使用。 更多...
 
long GetFileSize (string path)
 获取文件大小。 更多...
 
long GetFileSize (int id)
 获取文件大小。 更多...
 
bool GetContentsFileInfo (string path, out ContentsFileInfo info)
 获取CPK内容文件信息。 更多...
 
bool GetContentsFileInfo (int id, out ContentsFileInfo info)
 获取CPK内容文件信息。 更多...
 

静态 Public 成员函数

static void Unbind (uint bindId)
 对已Bind的内容解除Bind。 更多...
 
static Status GetStatus (uint bindId)
 获取Binder的状态。 更多...
 
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)
 针对Bind ID设置搜索优先级。 更多...
 

详细描述

是用于存取CPK文件内的内容的模块。

说明:
CriFsBinder(Binder)是用于提升文件操作效率的数据库模块。
通过将CPK文件和目录关联(Bind)到Binder, 可以获取CPK文件和目录内的内容信息。

成员枚举类型说明

enum Status
strong

用于显示Binder状态的值。

参见
CriFsBinder::GetStatus
枚举值
None 

已停止

Analyze 

Bind处理中

Complete 

Bind完成

Unbind 

解除Bind处理中

Removed 

解除Bind完成

Invalid 

Bind无效

Error 

Bind失败

成员函数说明

override void Dispose ( )
inline

丢弃Binder。

注意:
如果在Bind处理过程中丢弃了Binder,或者在不执行Unbind处理的情况下丢弃了Binder, 则本函数内的处理可能会长时间被阻断。
uint BindCpk ( CriFsBinder  srcBinder,
string  path 
)
inline

Bind CPK文件。

参数
srcBinder用于存取要Bind的CPK文件的Binder
path要Bind的CPK文件的路径名
返回
Bind ID
说明:
要使用CPK文件时,需要BindCPK文件。
本函数会将CPK文件Bind至Binder中,并返回Bind ID。

在srcBinder中指定用于搜索CPK文件的Binder。
srcBinder为null时,使用预设的设备。

如果无法开始Bind,则Bind ID会返回0。
Bind ID如果返回了0以外的其他值,则表示已经取得了内部资源,
因此请务将多余的Bind ID解除Bind。
(正在Bind的CPK文件会以打开状态得到保持。)

本函数是即时返回型函数。
从本函数返回后,CPK的Bind尚未完成, 无法存取CPK的内容文件。
Bind状态更改为完成( Complete )后, 即可使用CPK。
Bind状态可以通过 CriWare.CriFsBinder::GetStatus 函数进行获取。
参见
CriFsBinder::GetStatus, CriFsBinder::Unbind
uint BindDirectory ( CriFsBinder  srcBinder,
string  path 
)
inline

Bind目录路径。

参数
srcBinder用于存取要Bind的目录的Binder
pathBind的目录的路径名
说明:
Bind目录路径名。
请以绝对路径指定要Bind的目录名。

Bind时不会检查所指定的目录是否存在。
Binder内保持的只是目录路径, 不会将指定目录内的文件处于打开状态。
因此,只要Bind未失败,从本函数返回时,Bind ID的Bind状态会更改为完成 ( Complete )。

如果无法开始Bind,则Bind ID会返回0。
Bind ID如果返回了0以外的其他值,则表示已经取得了内部资源,
因此请务将多余的Bind ID解除Bind。
注意:
本函数是开发支持用的调试函数。
使用本函数时,可能会发生以下问题。
注意:
最终版本中,请注意不要在应用程序中使用本函数。
(请将目录内的数据CPK文件化,用 CriWare.CriFsBinder::BindCpk 函数进行Bind, 或者将目录内的文件全部用 CriWare.CriFsBinder::BindFile 函数进行Bind。)
参见
CriFsBinder::GetStatus, CriFsBinder::Unbind, CriFsBinder::BindCpk, CriFsBinder::BindFile
uint BindFile ( CriFsBinder  srcBinder,
string  path 
)
inline

Bind文件。

参数
srcBinder用于存取要Bind的文件的Binder
path要Bind的文件的路径名
返回
Bind ID
说明:
Bind文件,返回Bind ID。
(从srcBinder的Binder用path搜索指定的文件并进行Bind。)
srcBinder为null时,使用预设的设备。

如果无法开始Bind,则Bind ID会返回0。
Bind ID如果返回了0以外的其他值,则表示已经取得了内部资源,
因此请务将多余的Bind ID解除Bind。
(正在Bind的CPK文件会以打开状态得到保持。)

本函数是即时返回型函数。
从本函数返回后,文件的Bind尚未完成, 无法存取使用Bind ID的文件。
Bind ID的Bind状态更改为完成( Complete )后, 就可以使用文件。
Bind状态通过 CriWare.CriFsBinder::GetStatus 函数进行获取。
参见
CriFsBinder::GetStatus, CriFsBinder::Unbind
uint BindFileSection ( CriFsBinder  srcBinder,
string  path,
ulong  offset,
int  size,
string  sectionName 
)
inline

Bind文件的其中一部分,将其当作虚拟文件来使用。

参数
srcBinder用于存取要Bind的文件的Binder
path要Bind的文件的路径名
offset数据开始位置(字节)
size数据大小(字节)
sectionName区间名
返回
Bind ID
说明:
Bind文件的其中一部分,返回Bind ID。
(从srcBinder的Binder用path搜索指定的文件并进行Bind。)
srcBinder为null时,使用预设的设备。

如果无法开始Bind,则Bind ID会返回0。
Bind ID如果返回了0以外的其他值,则表示已经取得了内部资源,
因此请务将多余的Bind ID解除Bind。
(正在Bind的CPK文件会以打开状态得到保持。)
(为加载时的路径指定区间名。)

本函数是即时返回型函数。
从本函数返回后,文件的Bind尚未完成, 无法存取使用Bind ID的文件。
Bind ID的Bind状态更改为完成( Complete )后, 就可以使用文件。
Bind状态通过 CriWare.CriFsBinder::GetStatus 函数进行获取。
参见
CriFsBinder::GetStatus, CriFsBinder::Unbind
static void Unbind ( uint  bindId)
inlinestatic

对已Bind的内容解除Bind。

参数
bindIdBind ID
说明:
对已Bind的内容解除Bind。
通过Bind ID来指定要对哪个内容来解除Bind。
注意:
本函数是完成返回函数。
会根据需要进行文件的关闭处理, 在某些执行环境下,可能会花费msec。

要解除Bind的Bind ID上关联的其他Bind ID也会 被同时解除Bind(隐式解除Bind)。
例如,对CPK Bind ID的内容文件进行文件Bind的Bind ID, 如果参照源的CPK Bind ID被解除Bind,将会被隐式解除Bind。
参见
CriWare.CriFsBinder::BindCpk, CriFsBinder::BindFile
static Status GetStatus ( uint  bindId)
inlinestatic

获取Binder的状态。

返回
状态
参见
CriFsBinder::Status
long GetFileSize ( string  path)
inline

获取文件大小。

参数
path文件的完整路径
返回
文件大小
说明:
获取所指定的文件的文件大小。
搜索对象是Bind状态为 Complete 的Bind ID。

如果指定文件不存在,则将会返回负值。
注意:
如果用 CriWare.CriFsBinder::BindDirectory 函数绑定了目录, 处理可能会在本函数中被阻断很长时间。
参见
CriFsBinder::GetFileSize(int)
long GetFileSize ( int  id)
inline

获取文件大小。

参数
id文件ID
返回
文件大小
说明:
获取文件大小。
需要Bind附带ID信息的CPK文件。
搜索对象是Bind状态为 Complete 的Bind ID。

如果指定文件不存在,则将会返回负值。
参见
CriFsBinder::GetFileSize(string)
bool GetContentsFileInfo ( string  path,
out ContentsFileInfo  info 
)
inline

获取CPK内容文件信息。

参数
path文件的完整路径
info内容文件信息
返回
是否成功获取
说明:
从附带ID+文件名信息的CPK文件获取所指定的文件名的文件信息。
用于存放所指定的文件的CPK必须是附带ID+文件名信息的CPK。
如果指定的Binder句柄中存在多个相同名称的文件,则将会选择存放首个找到的文件 的CPK。
参见
CriFsBinder::GetContentsFileInfo(int, out ContentsFileInfo)
bool GetContentsFileInfo ( int  id,
out ContentsFileInfo  info 
)
inline

获取CPK内容文件信息。

参数
id文件ID
info内容文件信息
返回
是否成功获取
说明:
从附带ID+文件名信息的CPK文件获取所指定的文件ID的文件信息。
用于存放所指定的文件的CPK必须是附带ID+文件名信息的CPK。
如果指定的Binder句柄中存在多个相同ID的文件,则将会选择存放首个找到的文件 的CPK。
参见
CriFsBinder::GetContentsFileInfo(string, out ContentsFileInfo)
static bool GetContentsFileInfoByIndex ( uint  bindId,
int  index,
int  numFiles,
out ContentsFileInfo[]  info 
)
inlinestatic

获取CPK内容文件信息。

参数
bindIdBind 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内容文件的总数。

参数
bindIdBind ID
返回
内容文件数
说明:
从附带ID+文件名信息的CPK文件获取所包含的文件的总数。
本函数的返回值是针对相同的Bind ID,可以用 CriWare.CriFsBinder::GetContentsFileInfoByIndex 函数指定的 获取信息的内容文件数的最大值。
参见
CriFsBinder::GetContentsFileInfoByIndex
static void SetPriority ( uint  bindId,
int  priority 
)
inlinestatic

针对Bind ID设置搜索优先级。

参数
bindIdBind ID
priority优先级
说明:
针对Bind ID,设置Binder内的搜索优先级。
优先级是 0 为最低,值越大搜索优先级越高。
相同优先级的Bind ID会使先Bind的一方优先成为搜索对象。
未设置优先级时,预设的优先级是 0 。
对象是Bind状态为 Complete 的Bind ID。

该类的文档由以下文件生成: