# ResourceFileSystem::GetResourceInfo ## 方法签名 ```cpp bool GetResourceInfo(const Containers::String& relativePath, ResourceInfo& outInfo) const; ``` ## 所属类 `XCEngine::Resources::ResourceFileSystem` ## 描述 获取指定资源的详细信息,包括路径、大小、修改时间和所属档案等。查询结果会被缓存以提高后续查询性能。 此方法线程安全。 ## 参数 | 参数名 | 类型 | 描述 | |--------|------|------| | `relativePath` | `const Containers::String&` | 资源的相对路径 | | `outInfo` | `ResourceInfo&` | 输出参数,接收资源信息 | ## 返回值 - `bool` - 成功获取返回 `true`,资源不存在返回 `false` ## 示例 ```cpp #include "Resources/ResourceFileSystem.h" using namespace XCEngine::Resources; ResourceFileSystem& fs = ResourceFileSystem::Get(); fs.Initialize("C:/Game/Resources"); fs.AddDirectory("C:/Game/Assets"); fs.AddArchive("C:/Game/Paks/Textures.pak"); ResourceInfo info; // 获取目录中的资源信息 if (fs.GetResourceInfo("shaders/forward.glsl", info)) { printf("Path: %s\n", info.path.CStr()); printf("Size: %zu bytes\n", info.size); printf("In Archive: %s\n", info.inArchive ? "Yes" : "No"); } // 获取档案中的资源信息 if (fs.GetResourceInfo("textures/player/diffuse.png", info)) { printf("Path: %s\n", info.path.CStr()); printf("Archive: %s\n", info.archivePath.CStr()); printf("In Archive: %s\n", info.inArchive ? "Yes" : "No"); } ``` ## 注意事项 - 首次查询后信息会被缓存 - 当前实现的大小和修改时间为占位值,待完整实现 - `ResourceInfo::size` 和 `ResourceInfo::modifiedTime` 的获取需要操作系统 API 支持