124 lines
2.1 KiB
Markdown
124 lines
2.1 KiB
Markdown
# IArchive 接口
|
|
|
|
## 头文件
|
|
|
|
```cpp
|
|
#include "XCEngine/Resources/ResourceFileSystem.h"
|
|
```
|
|
|
|
## 命名空间
|
|
|
|
`XCEngine::Resources`
|
|
|
|
## 类型
|
|
|
|
抽象接口类
|
|
|
|
## 描述
|
|
|
|
`IArchive` 是档案压缩包资源的抽象接口,定义了访问档案内资源的基本操作。具体的档案实现(如 ZIP、Pak 等)需要继承此接口。
|
|
|
|
## 方法详情
|
|
|
|
### Open
|
|
|
|
```cpp
|
|
virtual bool Open(const Containers::String& path) = 0;
|
|
```
|
|
|
|
打开指定路径的档案文件。
|
|
|
|
**参数:**
|
|
- `path` - 档案文件的路径
|
|
|
|
**返回值:**
|
|
- `bool` - 成功返回 `true`,失败返回 `false`
|
|
|
|
---
|
|
|
|
### Close
|
|
|
|
```cpp
|
|
virtual void Close() = 0;
|
|
```
|
|
|
|
关闭当前打开的档案,释放相关资源。
|
|
|
|
---
|
|
|
|
### Read
|
|
|
|
```cpp
|
|
virtual bool Read(const Containers::String& fileName, void* buffer, size_t size, size_t offset) const = 0;
|
|
```
|
|
|
|
从档案中读取指定的文件数据。
|
|
|
|
**参数:**
|
|
- `fileName` - 要读取的文件名
|
|
- `buffer` - 接收数据的缓冲区指针
|
|
- `size` - 要读取的字节数
|
|
- `offset` - 文件内的读取偏移量
|
|
|
|
**返回值:**
|
|
- `bool` - 成功返回 `true`,失败返回 `false`
|
|
|
|
---
|
|
|
|
### GetSize
|
|
|
|
```cpp
|
|
virtual size_t GetSize(const Containers::String& fileName) const = 0;
|
|
```
|
|
|
|
获取档案内指定文件的大小。
|
|
|
|
**参数:**
|
|
- `fileName` - 文件名
|
|
|
|
**返回值:**
|
|
- `size_t` - 文件大小(字节),若文件不存在则返回 0
|
|
|
|
---
|
|
|
|
### Exists
|
|
|
|
```cpp
|
|
virtual bool Exists(const Containers::String& fileName) const = 0;
|
|
```
|
|
|
|
检查档案内是否存在指定文件。
|
|
|
|
**参数:**
|
|
- `fileName` - 要检查的文件名
|
|
|
|
**返回值:**
|
|
- `bool` - 存在返回 `true`,不存在返回 `false`
|
|
|
|
---
|
|
|
|
### Enumerate
|
|
|
|
```cpp
|
|
virtual void Enumerate(const Containers::String& pattern, Containers::Array<Containers::String>& outFiles) const = 0;
|
|
```
|
|
|
|
枚举档案内匹配指定模式的文件。
|
|
|
|
**参数:**
|
|
- `pattern` - 文件名匹配模式(支持通配符)
|
|
- `outFiles` - 输出容器,接收匹配的文件名列表
|
|
|
|
---
|
|
|
|
### IsValid
|
|
|
|
```cpp
|
|
virtual bool IsValid() const = 0;
|
|
```
|
|
|
|
检查档案是否已正确打开且有效。
|
|
|
|
**返回值:**
|
|
- `bool` - 有效返回 `true`,无效返回 `false`
|