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

1.5 KiB

ResourceFileSystem::EnumerateResources

方法签名

void EnumerateResources(const Containers::String& pattern, Containers::Array<ResourceInfo>& outResources) const;

所属类

XCEngine::Resources::ResourceFileSystem

描述

枚举所有匹配指定模式的资源。模式支持通配符(如 *.pngtextures/** 等)。

此方法线程安全。

参数

参数名 类型 描述
pattern const Containers::String& 文件名匹配模式
outResources Containers::Array<ResourceInfo>& 输出容器,接收匹配的资源信息列表

返回值

示例

#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);

注意事项

  • 当前实现尚未完成,输出容器可能为空
  • 模式语法的具体支持情况待实现