1# Rawfile 2 3 4提供操作rawfile目录和rawfile文件的功能。 5 6 7功能包括遍历、打开、搜索、读取和关闭rawfile。 8 9 10**起始版本:** 11 12 138 14 15 16## 汇总 17 18 19### 文件 20 21| 文件名称 | 描述 | 22| ---------------------------------------- | ------------------ | 23| [raw_dir.h](raw__dir_8h.md) | 提供rawfile目录相关功能。<br>引用文件:\<rawfile/raw_dir.h> | 24| [raw_file.h](raw__file_8h.md) | 提供rawfile文件相关功能。<br>引用文件:\<rawfile/raw_file.h> | 25| [raw_file_manager.h](raw__file__manager_8h.md) | 提供资源管理rawfile相关功能。<br>引用文件:\<rawfile/raw_file_manager.h> | 26 27 28### 结构体 29 30| 结构体名称 | 描述 | 31| ---------------------------------------- | ----------------- | 32| [RawFileDescriptor](_raw_file_descriptor.md) | 提供rawfile文件描述符信息。 | 33 34 35### 类型定义 36 37| 类型定义名称 | 描述 | 38| ---------------------------------------- | ------------------- | 39| [RawDir](#rawdir) | 提供对rawfile目录的访问。 | 40| [RawFile](#rawfile) | 提供对rawfile的访问功能。 | 41| [NativeResourceManager](#nativeresourcemanager) | 代表resource manager。 | 42 43 44### 函数 45 46| 函数名称 | 描述 | 47| ---------------------------------------- | ---------------------------------------- | 48| [OH_ResourceManager_GetRawFileName](#oh_resourcemanager_getrawfilename) ([RawDir](#rawdir) \*rawDir, int index) | 通过索引获取rawfile文件名称。 | 49| [OH_ResourceManager_GetRawFileCount](#oh_resourcemanager_getrawfilecount) ([RawDir](#rawdir) \*rawDir) | 获取[RawDir](#rawdir)中的rawfile数量。 | 50| [OH_ResourceManager_CloseRawDir](#oh_resourcemanager_closerawdir) ([RawDir](#rawdir) \*rawDir) | 关闭已打开的[RawDir](#rawdir)并释放所有相关联资源。 | 51| [OH_ResourceManager_ReadRawFile](#oh_resourcemanager_readrawfile) (const [RawFile](#rawfile) \*rawFile, void \*buf, size_t length) | 读取rawfile。 | 52| [OH_ResourceManager_SeekRawFile](#oh_resourcemanager_seekrawfile) (const [RawFile](#rawfile) \*rawFile, long offset, int whence) | 基于指定的offset,在rawfile文件内搜索读写数据的位置。 | 53| [OH_ResourceManager_GetRawFileSize](#oh_resourcemanager_getrawfilesize) ([RawFile](#rawfile) \*rawFile) | 获取rawfile长度,单位为int32_t。 | 54| [OH_ResourceManager_CloseRawFile](#oh_resourcemanager_closerawfile) ([RawFile](#rawfile) \*rawFile) | 关闭已打开的[RawFile](#rawfile) 以及释放所有相关联资源。 | 55| [OH_ResourceManager_GetRawFileOffset](#oh_resourcemanager_getrawfileoffset) (const [RawFile](#rawfile) \*rawFile) | 获取rawfile当前的offset,单位为int32_t。 | 56| [OH_ResourceManager_GetRawFileDescriptor](#oh_resourcemanager_getrawfiledescriptor) (const [RawFile](#rawfile) \*rawFile, [RawFileDescriptor](_raw_file_descriptor.md) &descriptor) | 基于offset(单位为int32_t)和文件长度打开rawfile,并获取rawfile文件描述符。 | 57| [OH_ResourceManager_ReleaseRawFileDescriptor](#oh_resourcemanager_releaserawfiledescriptor) (const [RawFileDescriptor](_raw_file_descriptor.md) &descriptor) | 关闭rawfile文件描述符。 | 58| [OH_ResourceManager_InitNativeResourceManager](#oh_resourcemanager_initnativeresourcemanager) (napi_env env, napi_value jsResMgr) | 基于JavaScript resource manager获取native resource manager。 | 59| [OH_ResourceManager_ReleaseNativeResourceManager](#oh_resourcemanager_releasenativeresourcemanager) ([NativeResourceManager](#nativeresourcemanager) \*resMgr) | 释放native resource manager。 | 60| [OH_ResourceManager_OpenRawDir](#oh_resourcemanager_openrawdir) (const [NativeResourceManager](#nativeresourcemanager) \*mgr, const char \*dirName) | 打开rawfile目录。 | 61| [OH_ResourceManager_OpenRawFile](#oh_resourcemanager_openrawfile) (const [NativeResourceManager](#nativeresourcemanager) \*mgr, const char \*fileName) | 打开rawfile文件。 | 62 63 64## 详细描述 65 66 67## 类型定义说明 68 69 70### NativeResourceManager 71 72 73``` 74typedef struct NativeResourceManager NativeResourceManager 75``` 76 77**描述:** 78 79代表resource manager。 80 81此类封装了JavaScript resource manager的native实现 **ResourceManager**指针可以通过调用[OH_ResourceManager_InitNativeResourceManager](#oh_resourcemanager_initnativeresourcemanager)方法获取 82 83**起始版本:** 84 858 86 87 88### RawDir 89 90 91``` 92typedef struct RawDir RawDir 93``` 94 95**描述:** 96 97提供对rawfile目录的访问。 98 99**起始版本:** 100 1018 102 103 104### RawFile 105 106 107``` 108typedef struct RawFile RawFile 109``` 110 111**描述:** 112 113提供对rawfile的访问功能。 114 115**起始版本:** 116 1178 118 119 120## 函数说明 121 122 123### OH_ResourceManager_CloseRawDir() 124 125 126``` 127void OH_ResourceManager_CloseRawDir (RawDir * rawDir) 128``` 129 130**描述:** 131 132关闭已打开的[RawDir](#rawdir)并释放所有相关联资源。 133 134**参数:** 135 136| Name | 描述 | 137| ------ | ------------------------- | 138| rawDir | 表示指向[RawDir](#rawdir)的指针。 | 139 140**参见:** 141 142[OH_ResourceManager_OpenRawDir](#oh_resourcemanager_openrawdir) 143 144**起始版本:** 145 1468 147 148 149### OH_ResourceManager_CloseRawFile() 150 151 152``` 153void OH_ResourceManager_CloseRawFile (RawFile * rawFile) 154``` 155 156**描述:** 157 158关闭已打开的[RawFile](#rawfile) 以及释放所有相关联资源。 159 160**参数:** 161 162| Name | 描述 | 163| ------- | --------------------------- | 164| rawFile | 表示指向[RawFile](#rawfile)的指针。 | 165 166**参见:** 167 168[OH_ResourceManager_OpenRawFile](#oh_resourcemanager_openrawfile) 169 170**起始版本:** 171 1728 173 174 175### OH_ResourceManager_GetRawFileCount() 176 177 178``` 179int OH_ResourceManager_GetRawFileCount (RawDir * rawDir) 180``` 181 182**描述:** 183 184获取[RawDir](#rawdir)中的rawfile数量。 185 186通过此方法可以获取[OH_ResourceManager_GetRawFileName](#oh_resourcemanager_getrawfilename)中可用的索引。 187 188**参数:** 189 190| Name | 描述 | 191| ------ | ------------------------- | 192| rawDir | 表示指向[RawDir](#rawdir)的指针。 | 193 194**参见:** 195 196[OH_ResourceManager_GetRawFileName](#oh_resourcemanager_getrawfilename) 197 198**起始版本:** 199 2008 201 202 203### OH_ResourceManager_GetRawFileDescriptor() 204 205 206``` 207bool OH_ResourceManager_GetRawFileDescriptor (const RawFile * rawFile, RawFileDescriptor & descriptor ) 208``` 209 210**描述:** 211 212基于offset(单位为int32_t)和文件长度打开rawfile,并获取rawfile文件描述符。 213 214打开的文件描述符被用于读取rawfile。 215 216**参数:** 217 218| Name | 描述 | 219| ---------- | ---------------------------------------------------- | 220| rawFile | 表示指向[RawFile](#rawfile)的指针。 | 221| descriptor | 显示rawfile文件描述符,以及在HAP中的起始位置和长度。 | 222 223**返回:** 224 225返回true表示打开rawfile文件描述符成功,返回false表示rawfile不允许被访问。 226 227**起始版本:** 228 2298 230 231 232### OH_ResourceManager_GetRawFileName() 233 234 235``` 236const char* OH_ResourceManager_GetRawFileName (RawDir * rawDir, int index ) 237``` 238 239**描述:** 240 241通过索引获取rawfile文件名称。 242 243可以使用此方法遍历rawfile目录。 244 245**参数:** 246 247| Name | 描述 | 248| ------ | ----------------------------- | 249| rawDir | 表示指向[RawDir](#rawdir)的指针。 | 250| index | 表示文件在[RawDir](#rawdir)中的索引位置。 | 251 252**返回:** 253 254通过索引返回文件名称,此返回值可以作为[OH_ResourceManager_OpenRawFile](#oh_resourcemanager_openrawfile)的输入参数, 如果遍历完所有文件仍未找到,则返回**NULL**。 255 256**参见:** 257 258[OH_ResourceManager_OpenRawFile](#oh_resourcemanager_openrawfile) 259 260**起始版本:** 261 2628 263 264 265### OH_ResourceManager_GetRawFileOffset() 266 267 268``` 269long OH_ResourceManager_GetRawFileOffset (const RawFile * rawFile) 270``` 271 272**描述:** 273 274获取rawfile当前的offset,单位为int32_t。 275 276rawfile当前的offset。 277 278**参数:** 279 280| Name | 描述 | 281| ------- | --------------------------- | 282| rawFile | 表示指向[RawFile](#rawfile)的指针。 | 283 284**返回:** 285 286返回rawfile当前的offset。 287 288**起始版本:** 289 2908 291 292 293### OH_ResourceManager_GetRawFileSize() 294 295 296``` 297long OH_ResourceManager_GetRawFileSize (RawFile * rawFile) 298``` 299 300**描述:** 301 302获取rawfile长度,单位为int32_t。 303 304**参数:** 305 306| Name | 描述 | 307| ------- | --------------------------- | 308| rawFile | 表示指向[RawFile](#rawfile)的指针。 | 309 310**返回:** 311 312Returns rawfile整体长度。 313 314**起始版本:** 315 3168 317 318 319### OH_ResourceManager_InitNativeResourceManager() 320 321 322``` 323NativeResourceManager* OH_ResourceManager_InitNativeResourceManager (napi_env env, napi_value jsResMgr ) 324``` 325 326**描述:** 327 328基于JavaScript resource manager获取native resource manager。 329 330通过获取resource manager来完成rawfile相关功能。 331 332**参数:** 333 334| Name | 描述 | 335| -------- | ---------------------------------------- | 336| env | 表示JavaScript Native Interface (napi)环境指针。 | 337| jsResMgr | 表示JavaScript resource manager。 | 338 339**返回:** 340 341返回[NativeResourceManager](#nativeresourcemanager)指针。 342 343**起始版本:** 344 3458 346 347 348### OH_ResourceManager_OpenRawDir() 349 350 351``` 352RawDir* OH_ResourceManager_OpenRawDir (const NativeResourceManager * mgr, const char * dirName ) 353``` 354 355**描述:** 356 357打开rawfile目录。 358 359打开rawfile目录后,可以遍历对应目录下的rawfile文件。 360 361**参数:** 362 363| Name | 描述 | 364| ------- | ---------------------------------------- | 365| mgr | 表示指向[NativeResourceManager](#nativeresourcemanager)的指针,此指针是通过调用 [OH_ResourceManager_InitNativeResourceManager](#oh_resourcemanager_initnativeresourcemanager)方法获取的。 | 366| dirName | 表示要打开的rawfile目录名称,当传递一个空字符串时表示打开rawfile根目录。 | 367 368**返回:** 369 370返回[RawDir](#rawdir)指针。使用完此指针后,调用[OH_ResourceManager_CloseRawDir](#oh_resourcemanager_closerawdir)释放。 371 372**参见:** 373 374[OH_ResourceManager_InitNativeResourceManager](#oh_resourcemanager_initnativeresourcemanager) 375 376[OH_ResourceManager_CloseRawDir](#oh_resourcemanager_closerawdir) 377 378**起始版本:** 379 3808 381 382 383### OH_ResourceManager_OpenRawFile() 384 385 386``` 387RawFile* OH_ResourceManager_OpenRawFile (const NativeResourceManager * mgr, const char * fileName ) 388``` 389 390**描述:** 391 392打开rawfile文件。 393 394当打开rawfile以后,可以读取它的数据。 395 396**参数:** 397 398| Name | 描述 | 399| -------- | ---------------------------------------- | 400| mgr | 表示指向[NativeResourceManager](#nativeresourcemanager)的指针,此指针是通过调用 [OH_ResourceManager_InitNativeResourceManager](#oh_resourcemanager_initnativeresourcemanager)方法获取的。 | 401| fileName | 表示基于rawfile根目录的相对路径下的文件名称。 | 402 403**返回:** 404 405返回[RawFile](#rawfile)指针。当使用完此指针,调用[OH_ResourceManager_CloseRawFile](#oh_resourcemanager_closerawfile)释放。 406 407**参见:** 408 409[OH_ResourceManager_InitNativeResourceManager](#oh_resourcemanager_initnativeresourcemanager) 410 411[OH_ResourceManager_CloseRawFile](#oh_resourcemanager_closerawfile) 412 413**起始版本:** 414 4158 416 417 418### OH_ResourceManager_ReadRawFile() 419 420 421``` 422int OH_ResourceManager_ReadRawFile (const RawFile * rawFile, void * buf, size_t length ) 423``` 424 425**描述:** 426 427读取rawfile。 428 429从当前位置读取**指定长度**的数据。 430 431**参数:** 432 433| Name | 描述 | 434| ------- | --------------------------- | 435| rawFile | 表示指向[RawFile](#rawfile)的指针。 | 436| buf | 用于接收读取数据的缓冲区指针。 | 437| length | 读取数据的字节长度。 | 438 439**返回:** 440 441返回读取的字节数,如果读取长度超过文件末尾长度,则返回**0**。 442 443**起始版本:** 444 4458 446 447 448### OH_ResourceManager_ReleaseNativeResourceManager() 449 450 451``` 452void OH_ResourceManager_ReleaseNativeResourceManager (NativeResourceManager * resMgr) 453``` 454 455**描述:** 456 457释放native resource manager。 458 459**参数:** 460 461| Name | 描述 | 462| ------ | ---------------------------------------- | 463| resMgr | 表示[NativeResourceManager](#nativeresourcemanager)指针。 | 464 465**起始版本:** 466 4678 468 469 470### OH_ResourceManager_ReleaseRawFileDescriptor() 471 472 473``` 474bool OH_ResourceManager_ReleaseRawFileDescriptor (const RawFileDescriptor & descriptor) 475``` 476 477**描述:** 478 479关闭rawfile文件描述符。 480 481已打开的文件描述符在使用完以后必须释放,防止文件描述符泄露。 482 483**参数:** 484 485| Name | 描述 | 486| ---------- | ---------------------------------------------------- | 487| descriptor | 包含rawfile文件描述符,以及在HAP中的起始位置和长度。 | 488 489**返回:** 490 491返回true表示关闭文件描述符成功,返回false表示关闭文件描述符失败。 492 493**起始版本:** 494 4958 496 497 498### OH_ResourceManager_SeekRawFile() 499 500 501``` 502int OH_ResourceManager_SeekRawFile (const RawFile * rawFile, long offset, int whence ) 503``` 504 505**描述:** 506 507基于指定的offset,在rawfile文件内搜索读写数据的位置。 508 509**参数:** 510 511| Name | 描述 | 512| ------- | ---------------------------------------- | 513| rawFile | 表示指向[RawFile](#rawfile)的指针。 | 514| offset | 表示指定的offset。 | 515| whence | 读写位置,有以下场景:<br/>**0**: 读写位置为**offset**<br/>**1**: 读写位置为当前位置加上**offset**<br/>**2**: 读写位置为文件末尾(EOF)加上**offset**。 | 516 517**返回:** 518 519如果搜索成功返回新的读写位置,如果发生错误返回 **(long) -1**。 520 521**起始版本:** 522 5238 524