Files
XCEngine/docs/api/resources/filearchive/filearchive.md
ssdfasd a1804f4cb0 docs: 更新 resources, rhi, scene 模块及新增 camera-component 方法文档
- resources: 更新 asyncloader, audioclip, mesh-import-settings, texture-loader 文档
- rhi: 更新 opengl render-target-view 文档
- components: 新增 camera-component 全部方法文档 (15个文件)
2026-03-26 02:00:45 +08:00

76 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# FileArchive
**命名空间**: `XCEngine::Resources`
**类型**: `class`
**头文件**: `XCEngine/Core/IO/FileArchive.h`
**继承自**: `IArchive`
**描述**: 文件归档读取器,将文件系统目录作为虚拟归档进行访问。
## 概述
`FileArchive` 实现了 `IArchive` 接口,用于将文件系统目录作为虚拟归档进行访问。它维护已打开目录的路径和有效性状态,支持读取文件、检查存在性、获取文件大小等操作。
## 继承关系
```
IArchive
└── FileArchive
```
## 公共方法
| 方法 | 描述 |
|------|------|
| [`FileArchive()`](filearchive.md) | 默认构造 |
| [`~FileArchive()`](filearchive.md) | 析构函数,自动关闭归档 |
| [`Open(...)`](open.md) | 打开归档目录 |
| [`Close()`](close.md) | 关闭归档 |
| [`Read(...)`](read.md) | 读取文件数据 |
| [`GetSize(...)`](getsize.md) | 获取文件大小 |
| [`Exists(...)`](exists.md) | 检查文件是否存在 |
| [`Enumerate(...)`](enumerate.md) | 枚举匹配的文件(暂未实现) |
| [`IsValid()`](filearchive.md) | 检查归档是否有效 |
| [`GetPath()`](filearchive.md) | 获取归档路径 |
## 使用示例
```cpp
#include <XCEngine/Core/IO/FileArchive.h>
// 创建并打开归档
FileArchive archive;
if (archive.Open("resources/textures/")) {
// 检查文件是否存在
if (archive.Exists("player.png")) {
// 获取文件大小
size_t size = archive.GetSize("player.png");
// 读取文件内容
Containers::Array<Core::uint8> buffer(size);
if (archive.Read("player.png", buffer.Data(), size, 0)) {
// 处理文件数据
}
}
// 枚举匹配的文件
Containers::Array<Containers::String> files;
archive.Enumerate("*.png", files);
archive.Close();
}
```
## 实现说明
- `Enumerate()` 当前为 stub仅清空输出数组未实现模式匹配功能。
## 相关文档
- [Resources 模块总览](../resources.md) - 返回模块总览
- [IArchive](../resource-file-system/iarchive.md) - 归档接口定义
- [ResourceFileSystem](../resource-file-system/index.md) - 资源文件系统