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