# 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& outFiles) const = 0; ``` 枚举档案内匹配指定模式的文件。 **参数:** - `pattern` - 文件名匹配模式(支持通配符) - `outFiles` - 输出容器,接收匹配的文件名列表 --- ### IsValid ```cpp virtual bool IsValid() const = 0; ``` 检查档案是否已正确打开且有效。 **返回值:** - `bool` - 有效返回 `true`,无效返回 `false`