ISteamUGC::MarkDownloadedItemAsUnused:解除下载项目的缓存保留

ISteamUGC::MarkDownloadedItemAsUnused:解除下载项目的缓存保留

MarkDownloadedItemAsUnused 用于告知 Steam 客户端指定下载项目不再需要为当前使用场景继续保存在本地缓存中。本页面向 Steamworks 游戏和工具开发者,说明接口声明、参数、返回方式以及与工坊内容生命周期相关的注意事项。

工坊内容获取与加载流程

函数声明

客户端通过初始化成功后的 SteamUGC() 接口访问;游戏服务器使用服务器上下文的 SteamGameServerUGC()。以下声明按本次核对的官方接口整理,编译时应以项目实际使用的 SDK 头文件为准。

bool MarkDownloadedItemAsUnused( PublishedFileId_t nPublishedFileID );

参数

参数 类型 方向与含义
nPublishedFileID PublishedFileId_t 输入:目标工坊项目的 PublishedFileId_t。

返回值与完成方式

返回 bool;true 表示标记成功。该操作以已下载项目的 PublishedFileId_t 为目标。

调用规则与排查

同一台机器上的其他用户仍订阅项目时,Steam 可能继续保留内容。因此不能把此标记等同于立即删除文件,也不应由游戏假设缓存一定已经清理。需要查看实际下载列表时使用 GetDownloadedItems。

使用场景

例如,游戏服务器不再需要某张临时获取的工坊地图时,可以在自身停止使用并释放文件句柄后标记该项目。此后 Steam 可按缓存策略处理内容,但其他用户的订阅仍可能要求保留;不要在标记成功后就把目录消失作为前提。

相关接口

GetNumDownloadedItems、GetDownloadedItems。回调、状态与类型参考整理了相关结构体和枚举,适合在处理结果时对照使用。

资料依据:Steamworks ISteamUGC:MarkDownloadedItemAsUnused。资料核对日期:2026 年 11 月 4 日。