Files
XCEngine/docs/api/resources/resource-file-system/enumerate-resources.md

64 lines
1.5 KiB
Markdown
Raw Normal View History

2026-03-20 02:35:35 +08:00
# ResourceFileSystem::EnumerateResources
## 方法签名
```cpp
void EnumerateResources(const Containers::String& pattern, Containers::Array<ResourceInfo>& outResources) const;
```
## 所属类
`XCEngine::Resources::ResourceFileSystem`
## 描述
枚举所有匹配指定模式的资源。模式支持通配符(如 `*.png``textures/**` 等)。
此方法线程安全。
## 参数
| 参数名 | 类型 | 描述 |
|--------|------|------|
| `pattern` | `const Containers::String&` | 文件名匹配模式 |
| `outResources` | `Containers::Array<ResourceInfo>&` | 输出容器,接收匹配的资源信息列表 |
## 返回值
## 示例
```cpp
#include "Resources/ResourceFileSystem.h"
using namespace XCEngine::Resources;
ResourceFileSystem& fs = ResourceFileSystem::Get();
fs.Initialize("C:/Game/Resources");
fs.AddDirectory("C:/Game/Assets");
Containers::Array<ResourceInfo> resources;
// 枚举所有 PNG 纹理
fs.EnumerateResources("**/*.png", resources);
printf("Found %zu PNG files:\n", resources.Size());
for (const auto& res : resources) {
printf(" - %s (%zu bytes)\n", res.path.CStr(), res.size);
}
// 枚举所有着色器
resources.Clear();
fs.EnumerateResources("**/*.glsl", resources);
printf("Found %zu shader files:\n", resources.Size());
// 枚举特定目录下的资源
resources.Clear();
fs.EnumerateResources("textures/**/*.png", resources);
```
## 注意事项
- 当前实现尚未完成,输出容器可能为空
- 模式语法的具体支持情况待实现