提供函数以读取、写入、访问能远程存储在 Steam 云上的文件。
参见
Steam 云,了解更多信息。
成员函数
ISteamRemoteStorage
的成员函数通过全局访问器函数
ISteamRemoteStorage()
调用。
BeginFileWriteBatch
bool BeginFileWriteBatch( );
和
EndFileWriteBatch 一起使用来包装一组本地文件写入/删除,这些写入/删除应被视为单个状态更改的一部分。 例如,如果保存游戏进度需要同时更新
savegame1.dat
和
maxprogress.dat
,请使用对
BeginFileWriteBatch
和
EndFileWriteBatch
的调用来包装这些操作。
这些函数会提示 Steam,而 Steam 会帮助其管理应用的云文件。 这些函数的使用为可选,不过使用它们会更加可靠。
请注意,无论是使用
ISteamRemoteStorage API
进行写入的,还是直接写入本地磁盘(使用 AutoCloud 的地方)的,都可以使用这些函数。
返回: bool
true, 表示批次写入开始,
false,表示已有某个批次在进行中。
CommitPublishedFileUpdate
SteamAPICall_t CommitPublishedFileUpdate( PublishedFileUpdateHandle_t updateHandle );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: SteamAPICall_t,与
RemoteStorageUpdatePublishedFileResult_t 调用结果一起使用。
CreatePublishedFileUpdateRequest
PublishedFileUpdateHandle_t CreatePublishedFileUpdateRequest( PublishedFileId_t unPublishedFileId );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: PublishedFileUpdateHandle_tDeletePublishedFile
SteamAPICall_t DeletePublishedFile( PublishedFileId_t unPublishedFileId );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: SteamAPICall_t,与
RemoteStorageDeletePublishedFileResult_t 调用结果一起使用。
EndFileWriteBatch
bool EndFileWriteBatch( );
和
BeginFileWriteBatch 一起使用;请参见相关文档以获取更多详情。
返回: bool
true, 表示写入批次已完成,
false,表示没有批次正在进行中。
EnumeratePublishedFilesByUserAction
SteamAPICall_t EnumeratePublishedFilesByUserAction( EWorkshopFileAction eAction, uint32 unStartIndex );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: SteamAPICall_t,与
RemoteStorageEnumeratePublishedFilesByUserActionResult_t 调用结果一起使用。
EnumeratePublishedWorkshopFiles
SteamAPICall_t EnumeratePublishedWorkshopFiles( EWorkshopEnumerationType eEnumerationType, uint32 unStartIndex, uint32 unCount, uint32 unDays, SteamParamStringArray_t *pTags, SteamParamStringArray_t *pUserTags );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: SteamAPICall_t,与
RemoteStorageEnumerateWorkshopFilesResult_t 调用结果一起使用。
EnumerateUserPublishedFiles
SteamAPICall_t EnumerateUserPublishedFiles( uint32 unStartIndex );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: SteamAPICall_t,与
RemoteStorageEnumerateUserPublishedFilesResult_t 调用结果一起使用。
EnumerateUserSharedWorkshopFiles
SteamAPICall_t EnumerateUserSharedWorkshopFiles( CSteamID steamId, uint32 unStartIndex, SteamParamStringArray_t *pRequiredTags, SteamParamStringArray_t *pExcludedTags );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: SteamAPICall_t,与
RemoteStorageEnumerateUserPublishedFilesResult_t 调用结果一起使用。
EnumerateUserSubscribedFiles
SteamAPICall_t EnumerateUserSubscribedFiles( uint32 unStartIndex );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: SteamAPICall_t,与
RemoteStorageEnumerateUserSubscribedFilesResult_t 调用结果一起使用。
FileDelete
bool FileDelete( const char *pchFile );
名称 | 类型 | 描述 |
pchFile | const char * | 要删除的文件的名称。 |
从本地磁盘中删除一个文件,并将该删除传播到云端。
此函数应该只在用户主动删除文件时使用。 如果您希望将一个文件从 Steam 云中移除,但将其保留在用户的本地磁盘,则需使用
FileForget。
您删除文件后,可以使用
FileWrite 重新写入该文件,以将其重新上传至 Steam 云。
返回: bool
true, 表示文件存在且已成功删除;否则,如果文件不存在,返回
false。
FileExists
bool FileExists( const char *pchFile );
名称 | 类型 | 描述 |
pchFile | const char * | 文件名称。 |
检查指定文件是否存在。
返回: bool
true, 表示文件存在;否则,返回
false。
FileFetch
bool FileFetch( const char *pchFile );
名称 | 类型 | 描述 |
pchFile | const char * | |
已弃用 - 仅限 PS3。
返回: bool
FileForget
bool FileForget( const char *pchFile );
名称 | 类型 | 描述 |
pchFile | const char * | 要遗忘的文件名称。 |
将文件从远程存储删除,但保留在本地磁盘上,且仍能从 API 访问。
当您的云空间不够时,您可以使用此函数,使对
FileWrite 的调用继续进行,而无需用户删除文件。
您可以决定如何遗忘哪些文件。 可以是简单的最近最少使用(LRU)队列或者更复杂的方式。
虽然要求用户去管理自己存储于云端的游戏文件是可能的,但我们一向不建议这么做。 比如,类似于“为了存储这一新的文件,您想要删除哪个文件?”的问题去除了使用云端一个本来的重要优势:透明性。
文件一旦被删除或遗忘,调用
FileWrite 将在云端重新同步该文件。 重新写入遗忘的文件是再次保留该文件的唯一方式。
返回: bool
true, 表示文件存在且已被成功遗忘;否则返回
false。
FilePersist
bool FilePersist( const char *pchFile );
名称 | 类型 | 描述 |
pchFile | const char * | |
已弃用 - 仅限 PS3。
返回: bool
FilePersisted
bool FilePersisted( const char *pchFile );
名称 | 类型 | 描述 |
pchFile | const char * | 文件名称。 |
查看一个特定文件是否在 Steam 云上保留。
返回: bool
true, 表示文件存在且已在 Steam 云上保留。
false, 表示对文件调用了
FileForget 且文件只留在本地。
FileRead
int32 FileRead( const char *pchFile, void *pvData, int32 cubDataToRead );
打开一个二进制文件,将文件内容读取至一个字节数组,然后关闭文件。
注意: 这是一个同步调用,因此将阻止您调用磁盘 IO 的线程,也将阻止 SteamAPI,这可能导致您应用程序中的其他线程受阻。 要避免客户端电脑由于磁盘繁忙出现“卡顿”,我们建议使用此API 的异步版本,即
FileReadAsync。
返回: uint32读取的字节量。
如果文件不存在或读取失败,返回
0。
FileReadAsync
SteamAPICall_t FileReadAsync( const char *pchFile, uint32 nOffset, uint32 cubToRead );
名称 | 类型 | 描述 |
pchFile | const char * | 要读取的文件名称。 |
nOffset | uint32 | 从文件何处开始读取的偏移量,以字节计。 如果您一次读取整个文件,则为 0。 |
cubToRead | uint32 | 从 nOffset 开始读取的字节量。 |
开始异步读取一个文件。
偏移量与读取量应该对
GetFileSize 或
GetFileTimestamp 表明的文件大小有效。
返回: SteamAPICall_t,与
RemoteStorageFileReadAsyncComplete_t 调用结果一起使用。
在下列情况时,返回
k_uAPICallInvalid:
- 尝试从无效路径或文件名读取。 由于 Steam 云是跨平台的,文件需要在支持的所有操作系统与文件系统中均有有效名称。 参见微软命名文件、路径与命名空间文档。
- 文件不存在。
-
cubDataToRead
为 <=0 字节。 您需要有内容可读!
-
pvData
与 cubDataToRead
组合读取的范围将超过文件结尾。
- 您正在对此文件进行异步读取。
读取请求完成后,您将收到调用结果,如果调用结果中的
m_eResult
值为
k_EResultOK,您可以再调用
FileReadAsyncComplete,将请求的数据读入您的缓冲区。
hReadCall
参数应与此函数返回的值一致,读取量一般应与
m_nOffset
和
m_cubRead
表示的请求量相等。
FileReadAsyncComplete
bool FileReadAsyncComplete( SteamAPICall_t hReadCall, void *pvBuffer, uint32 cubToRead );
将用
FileReadAsync 异步读取的文件的字节复制入字节数组。
绝不能从
RemoteStorageFileReadAsyncComplete_t 调用结果的上下文之外调用此函数。
返回: bool
true, 表示文件成功读取。
否则,在下列情况时,返回
false:
FileShare
SteamAPICall_t FileShare( const char *pchFile );
名称 | 类型 | 描述 |
pchFile | const char * | |
返回: SteamAPICall_t,与
RemoteStorageFileShareResult_t 调用结果一起使用。
FileWrite
bool FileWrite( const char *pchFile, const void *pvData, int32 cubData );
名称 | 类型 | 描述 |
pchFile | const char * | 要写入的文件的名称。 |
pvData | const void * | 要写入文件的字节。 |
cubData | int32 | 要写入文件的字节数。 通常为 pvData 的总大小。 |
创建一个新文件,将字节写入文件,再关闭文件。 目标文件若已存在,将被覆盖。
注意: 这是一个同步调用,因此将阻止您调用磁盘 IO 的线程,也将阻止 SteamAPI,这可能导致您应用程序中的其他线程受阻。 要避免客户端电脑由于磁盘繁忙出现“卡顿”,我们建议使用此API 的异步版本,即
FileWriteAsync。
返回: bool
true, 表示写入成功。
否则,在下列情况时,返回
false:
- 您尝试写入的文件大于 k_unMaxCloudFileChunkSize 所规定的 100MiB。
-
cubData
小于 0。
-
pvData
为 NULL。
- 您尝试从无效路径或文件名读取。 由于 Steam 云是跨平台的,文件需要在支持的所有操作系统与文件系统中均有有效名称。 参见微软命名文件、路径与命名空间文档。
- 超过了当前用户的 Steam 云存储配额。 云存储或者缺乏空间,或者有过多文件。
- Steam 无法写入磁盘,该位置可能为只读。
FileWriteAsync
SteamAPICall_t FileWriteAsync( const char *pchFile, const void *pvData, uint32 cubData );
名称 | 类型 | 描述 |
pchFile | const char * | 要写入的文件的名称。 |
pvData | const void * | 要写入文件的字节。 |
cubData | uint32 | 要写入文件的字节数。 通常为 pvData 的总大小。 |
创建一个新文件,向 Steam 云异步写入原始字节数据,再关闭文件。 目标文件若已存在,将被覆盖。
返回: SteamAPICall_t,与
RemoteStorageFileReadAsyncComplete_t 调用结果一起使用。
在下列情况时,返回
k_uAPICallInvalid:
- 您尝试写入的文件大于 k_unMaxCloudFileChunkSize 所规定的 100MiB。
-
cubData
小于 0。
-
pvData
为 NULL。
- 您尝试从无效路径或文件名读取。 由于 Steam 云是跨平台的,文件需要在支持的所有操作系统与文件系统中均有有效名称。 参见微软命名文件、路径与命名空间文档。
- 超过了当前用户的 Steam 云存储配额。 云存储或者缺乏空间,或者有过多文件。
FileWriteStreamCancel
bool FileWriteStreamCancel( UGCFileWriteStreamHandle_t writeHandle );
取消
FileWriteStreamOpen 开始的文件写入流。
这将取消所有写入的数据,并关闭写入流。但是,如果有带有此名称的现有文件,该文件保持不变。
返回: bool
FileWriteStreamClose
bool FileWriteStreamClose( UGCFileWriteStreamHandle_t writeHandle );
关闭
FileWriteStreamOpen 开始的文件写入流。
这将刷新向磁盘的数据流,如果有现存的文件,将覆盖该文件。
返回: bool
true, 表示文件写入流关闭成功,且文件已提交到磁盘。
false, 表示
writeHandle
不是有效的文件写入流。
FileWriteStreamOpen
UGCFileWriteStreamHandle_t FileWriteStreamOpen( const char *pchFile );
名称 | 类型 | 描述 |
pchFile | const char * | 要写入的文件的名称。 |
创建新文件输出流让您能将数据以区块的形式输出至 Steam 云。 如果目标文件已经存在,只有在
FileWriteStreamClose 已调用时才会被覆盖。
要将数据写出至此流,您可以使用
FileWriteStreamWriteChunk,再分别使用
FileWriteStreamClose 与
FileWriteStreamCancel 关闭或取消。
返回: UGCFileWriteStreamHandle_t在以下情况下返回
k_UGCFileStreamHandleInvalid:
- 您尝试写入无效的路径或文件名。 由于 Steam 云是跨平台的,文件需要在支持的所有操作系统与文件系统中均有有效名称。 参见微软命名文件、路径与命名空间文档。
- 超过了当前用户的 Steam 云存储配额。 云存储或者缺乏空间,或者有过多文件。
FileWriteStreamWriteChunk
bool FileWriteStreamWriteChunk( UGCFileWriteStreamHandle_t writeHandle, const void *pvData, int32 cubData );
将一份 blob 数据写入文件写入流。
返回: bool
true, 表示数据成功写入文件写入流。
false, 表示
writeHandle
为无效写入流,或
cubData
为负或大于
k_unMaxCloudFileChunkSize,或者当前用户的 Steam 云存储配额超额。 云存储或者缺乏空间,或者有过多文件。
GetCachedUGCCount
int32 GetCachedUGCCount();
返回: int32GetCachedUGCHandle
UGCHandle_t GetCachedUGCHandle( int32 iCachedContent );
名称 | 类型 | 描述 |
iCachedContent | int32 | |
返回: UGCHandle_tGetFileCount
int32 GetFileCount();
获取 Steam 云同步的本地文件的总数量。
用于通过
GetFileNameAndSize 枚举。
返回: int32呈现给当前用户的文件数量,包括子文件夹中的文件。
GetFileListFromServer
void GetFileListFromServer();
已弃用 - 仅限 PS3。
GetFileNameAndSize
const char * GetFileNameAndSize( int iFile, int32 *pnFileSizeInBytes );
通过索引获得一个文件的名称与大小。
注意: 您必须先调用
GetFileCount 获得文件数量。
返回: const char *
如果位于指定索引的文件存在的话,就返回文件名。 若文件不存在,返回空字符串("")。
示例:int32 fileCount = SteamRemoteStorage()->GetFileCount();
for ( int i = 0; i < fileCount; ++i ) {
int32 fileSize;
const char *fileName = SteamRemoteStorage()->GetFileNameAndSize( i, &fileSize );
// 对 fileSize 与 fileName 进行操作
}
GetFileSize
int32 GetFileSize( const char *pchFile );
名称 | 类型 | 描述 |
pchFile | const char * | 文件名称。 |
获取指定文件的字节大小。
返回: int32文件的字节大小。 如果文件不存在,返回
0。
GetFileTimestamp
int64 GetFileTimestamp( const char *pchFile );
名称 | 类型 | 描述 |
pchFile | const char * | 文件名称。 |
获得指定文件最近一次修改的 Unix 时间戳(自 1970 年 1 月 1 日起的秒数)。
返回: int64最近一次修改的 Unix 时间戳(自 1970 年 1 月 1 日起的秒数)。
GetLocalFileChangeCount
int32 GetLocalFileChangeCount( );
注意:仅适用于标记为支持动态 Steam 云同步的应用程序。
当您的应用程序收到
RemoteStorageLocalFileChange_t 时,使用此方法获取已进行的更改(文件更新和文件删除)的数量。 您可以使用
GetLocalFileChange 来循环访问更改。
返回: int32本地文件被更改的次数。
GetLocalFileChange
const char *GetLocalFileChange( int iFile, ERemoteStorageLocalFileChange *pEChangeType, ERemoteStorageFilePathType *pEFilePathType );
注意:仅适用于标记为支持动态 Steam 云同步的应用程序。
在调用
GetLocalFileChangeCount 后,使用此方法来循环访问更改。 已经对本地文件做出了上述更改。 您的应用程序应当采取相应的操作从磁盘重新加载状态,可能的话请通知用户。
例如:本地系统挂起,而在此期间用户在别处玩了游戏,并向 Steam 云上传了更改。 继续玩的时候,Steam 会在执行应用程序前下载这些更改至本地系统。 应用程序会收到
RemoteStorageLocalFileChange_t,并使用
GetLocalFileChangeCount 和
GetLocalFileChange 来循环访问这些变更。 视应用程序的结构和变更属性而定,应用程序可能会:
- 重新加载游戏进度以从用户在另一台设备上退出游戏时所处的位置继续
- 通知用户有无需重新加载就可以生效的已同步的更改
- 其他
返回: const char *
受此更改影响的文件的文件名或完整路径。 请参见上方
pEFilePathType
的描述了解更多详情。
GetPublishedFileDetails
SteamAPICall_t GetPublishedFileDetails( PublishedFileId_t unPublishedFileId, uint32 unMaxSecondsOld );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: SteamAPICall_t,与
RemoteStorageGetPublishedFileDetailsResult_t 调用结果一起使用。
GetPublishedItemVoteDetails
SteamAPICall_t GetPublishedItemVoteDetails( PublishedFileId_t unPublishedFileId );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: SteamAPICall_t,与
RemoteStorageGetPublishedItemVoteDetailsResult_t 调用结果一起使用。
GetQuota
bool GetQuota( uint64 *pnTotalBytes, uint64 *puAvailableBytes );
名称 | 类型 | 描述 |
pnTotalBytes | uint64 * | 返回用户可访问的字节总量。 |
puAvailableBytes | uint64 * | 返回可用的字节数。 |
获得可用的字节数,以及在用户的 Steam 云存储中使用的字节数。
返回: bool
此函数始终返回
true。
GetSyncPlatforms
ERemoteStoragePlatform GetSyncPlatforms( const char *pchFile );
名称 | 类型 | 描述 |
pchFile | const char * | 文件名称。 |
获取指定文件将同步至的平台。
返回: ERemoteStoragePlatform包含使用
SetSyncPlatforms 设置的文件平台的位域。
GetUGCDetails
bool GetUGCDetails( UGCHandle_t hContent, AppId_t *pnAppID, char **ppchName, int32 *pnFileSizeInBytes, CSteamID *pSteamIDOwner );
返回: bool
GetUGCDownloadProgress
bool GetUGCDownloadProgress( UGCHandle_t hContent, int32 *pnBytesDownloaded, int32 *pnBytesExpected );
返回: bool
GetUserPublishedItemVoteDetails
SteamAPICall_t GetUserPublishedItemVoteDetails( PublishedFileId_t unPublishedFileId );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: SteamAPICall_t,与
RemoteStorageGetPublishedItemVoteDetailsResult_t 调用结果一起使用。
IsCloudEnabledForAccount
bool IsCloudEnabledForAccount();
检查是否此用户帐户中的所有 Steam 云设置都已启用,或者是否用户在“设置”->“云”对话框禁用了 Steam 云。
确定您也检查了
IsCloudEnabledForApp。这两个选项互相排斥。
返回: bool
true, 表示此帐户启用了 Steam 云;否则,返回
false。
IsCloudEnabledForApp
bool IsCloudEnabledForApp();
查看是否此用户启用了按游戏设置的 Steam 云,或在“游戏属性”->“更新”对话框中禁用了 Steam 云。
确定您也检查了
IsCloudEnabledForAccount。这两个选项互相排斥。
我们一般建议您允许用户使用游戏内选项切换此设置。您可以使用
SetCloudEnabledForApp 进行切换。
返回: bool
true, 表示 Steam 云为此应用启用;否则,返回
false。
PublishVideo
SteamAPICall_t PublishVideo( EWorkshopVideoProvider eVideoProvider, const char *pchVideoAccount, const char *pchVideoIdentifier, const char *pchPreviewFile, AppId_t nConsumerAppId, const char *pchTitle, const char *pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t *pTags );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: SteamAPICall_t,与
RemoteStoragePublishFileProgress_t 调用结果一起使用。
PublishWorkshopFile
SteamAPICall_t PublishWorkshopFile( const char *pchFile, const char *pchPreviewFile, AppId_t nConsumerAppId, const char *pchTitle, const char *pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t *pTags, EWorkshopFileType eWorkshopFileType );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回值: SteamAPICall_t,与
RemoteStoragePublishFileProgress_t 调用结果一起使用。
ResetFileRequestState
bool ResetFileRequestState();
已弃用 - 仅限 PS3。
返回值: bool
SetCloudEnabledForApp
void SetCloudEnabledForApp( bool bEnabled );
名称 | 类型 | 描述 |
bEnabled | bool | 是为此应用程序启用(true)还是禁用(false)Steam 云? |
让您的应用程序在启用或禁用 Steam 云间切换。
此设置可以使用
IsCloudEnabledForApp 查询。
注意: 只有用户明确请求启用或禁用时才能调用此函数。 通常在您的游戏内选项中配有复选框以供选择。
SetSyncPlatforms
bool SetSyncPlatforms( const char *pchFile, ERemoteStoragePlatform eRemoteStoragePlatform );
允许您指定文件将同步入哪个操作系统。
如果您拥有一个多平台游戏,但是数据在各平台间不兼容时,使用此函数。
文件一开始创建时,默认为
k_ERemoteStoragePlatformAll。 您可以使用“或”位运算符“|”指定多个平台。
返回: bool
true, 表示文件存在;否则返回 false。
SetUserPublishedFileAction
SteamAPICall_t SetUserPublishedFileAction( PublishedFileId_t unPublishedFileId, EWorkshopFileAction eAction );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: SteamAPICall_t,与
RemoteStorageSetUserPublishedFileActionResult_t 调用一起使用。
SubscribePublishedFile
SteamAPICall_t SubscribePublishedFile( PublishedFileId_t unPublishedFileId );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: SteamAPICall_t,与
RemoteStorageUpdatePublishedFileResult_t 调用结果一起使用。
UGCDownload
SteamAPICall_t UGCDownload( UGCHandle_t hContent, uint32 unPriority );
返回: SteamAPICall_t,与
RemoteStorageDownloadUGCResult_t 调用结果一起使用。
UGCDownloadToLocation
SteamAPICall_t UGCDownloadToLocation( UGCHandle_t hContent, const char *pchLocation, uint32 unPriority );
返回: SteamAPICall_t,与
RemoteStorageDownloadUGCResult_t 调用结果一起使用。
UGCRead
int32 UGCRead( UGCHandle_t hContent, void *pvData, int32 cubDataToRead, uint32 cOffset, EUGCReadAction eAction );
返回: int32UnsubscribePublishedFile
SteamAPICall_t UnsubscribePublishedFile( PublishedFileId_t unPublishedFileId );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: SteamAPICall_t,与
RemoteStorageUnsubscribePublishedFileResult_t 调用结果一起使用。
UpdatePublishedFileDescription
bool UpdatePublishedFileDescription( PublishedFileUpdateHandle_t updateHandle, const char *pchDescription );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: bool
UpdatePublishedFileFile
bool UpdatePublishedFileFile( PublishedFileUpdateHandle_t updateHandle, const char *pchFile );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: bool
UpdatePublishedFilePreviewFile
bool UpdatePublishedFilePreviewFile( PublishedFileUpdateHandle_t updateHandle, const char *pchPreviewFile );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: bool
UpdatePublishedFileSetChangeDescription
bool UpdatePublishedFileSetChangeDescription( PublishedFileUpdateHandle_t updateHandle, const char *pchChangeDescription );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: bool
UpdatePublishedFileTags
bool UpdatePublishedFileTags( PublishedFileUpdateHandle_t updateHandle, SteamParamStringArray_t *pTags );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: bool
UpdatePublishedFileTitle
bool UpdatePublishedFileTitle( PublishedFileUpdateHandle_t updateHandle, const char *pchTitle );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: bool
UpdatePublishedFileVisibility
bool UpdatePublishedFileVisibility( PublishedFileUpdateHandle_t updateHandle, ERemoteStoragePublishedFileVisibility eVisibility );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: bool
UpdateUserPublishedItemVote
SteamAPICall_t UpdateUserPublishedItemVote( PublishedFileId_t unPublishedFileId, bool bVoteUp );
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
返回: SteamAPICall_t,与
RemoteStorageUpdateUserPublishedItemVoteResult_t 调用结果一起使用。
回调
以下是可以通过调用
SteamAPI_RunCallbacks 触发的回调。 其中许多将响应
ISteamRemoteStorage
的成员函数直接触发。
RemoteStorageAppSyncedClient_t
已弃用 - 仅限 PS3。
RemoteStorageAppSyncedServer_t
已弃用 - 仅限 PS3。
RemoteStorageAppSyncProgress_t
已弃用 - 仅限 PS3。
名称 | 类型 | 描述 |
m_rgchCurrentFile | char[k_cchFilenameMax] | 当前正在传输的文件。 |
m_nAppID | AppId_t | 与此信息相关的应用。 |
m_uBytesTransferredThisChunk | uint32 | 此区块传输的字节数 |
m_dAppPercentComplete | double | 此应用的传输完成的百分比。 |
m_bUploading | bool | 若为 false,则正在下载。 |
RemoteStorageAppSyncStatusCheck_t
已弃用 - 仅限 PS3。
RemoteStorageDeletePublishedFileResult_t
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
关联函数: DeletePublishedFileRemoteStorageDownloadUGCResult_t
关联函数: UGCDownload、
UGCDownloadToLocationRemoteStorageEnumeratePublishedFilesByUserActionResult_t
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
关联函数: EnumeratePublishedFilesByUserActionRemoteStorageEnumerateUserPublishedFilesResult_t
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
关联函数: EnumerateUserPublishedFiles、
EnumerateUserSharedWorkshopFilesRemoteStorageEnumerateUserSharedWorkshopFilesResult_t
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
RemoteStorageEnumerateUserSubscribedFilesResult_t
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
关联函数: EnumerateUserSubscribedFilesRemoteStorageEnumerateWorkshopFilesResult_t
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
关联函数: EnumeratePublishedWorkshopFilesRemoteStorageFileReadAsyncComplete_t
使用
FileReadAsync 异步读取文件时响应。
关联函数: FileReadAsyncRemoteStorageFileShareResult_t
关联函数: FileShareRemoteStorageFileWriteAsyncComplete_t
使用
FileWriteAsync 异步写入文件时的响应。
关联函数: FileWriteAsyncRemoteStorageGetPublishedFileDetailsResult_t
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
关联函数: GetPublishedFileDetailsRemoteStorageGetPublishedItemVoteDetailsResult_t
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
关联函数: GetPublishedItemVoteDetails、
GetUserPublishedItemVoteDetailsRemoteStorageLocalFileChange_t
如果 Steam 应用被标记为支持动态 Steam 云同步且已进行了同步,在本地文件被更改的情况下,此回调会被发布至该应用。
关联函数: GetLocalFileChangeCount、
GetLocalFileChangeRemoteStoragePublishedFileDeleted_t
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
RemoteStoragePublishedFileSubscribed_t
RemoteStoragePublishedFileUnsubscribed_t
RemoteStoragePublishedFileUpdated_t
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
RemoteStoragePublishFileProgress_t
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
名称 | 类型 | 描述 |
m_dPercentFile | double | |
m_bPreview | bool | |
关联函数: PublishWorkshopFile,
PublishVideoRemoteStoragePublishFileResult_t
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
RemoteStorageSetUserPublishedFileActionResult_t
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
关联函数: SetUserPublishedFileActionRemoteStorageSubscribePublishedFileResult_t
在玩家订阅了一个 UGC 时调用。 为
ISteamUGC::SubscribeItem 的结果。
关联函数: SubscribePublishedFileRemoteStorageUnsubscribePublishedFileResult_t
在玩家取消订阅一个 UGC 时调用。 为
ISteamUGC::UnsubscribeItem 的结果。
关联函数: UnsubscribePublishedFileRemoteStorageUpdatePublishedFileResult_t
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
关联函数: CommitPublishedFileUpdateRemoteStorageUpdateUserPublishedItemVoteResult_t
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
关联函数: CommitPublishedFileUpdateRemoteStorageUserVoteDetails_t
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
结构
以下是 ISteamRemoteStorage 中的函数可能返回和/或与之交互的结构。
SteamParamStringArray_t
名称 | 类型 | 描述 |
m_ppStrings | const char ** | 字符串数组。 |
m_nNumStrings | int32 | [param]m_ppStrings[/param] 中的字符串数量。 |
枚举
以下是定义来与 ISteamRemoteStorage 一起使用的枚举。
ERemoteStorageLocalFileChange
Steam 在应用程序会话期间更改本地文件的方式。 参见
GetLocalFileChange。
名称 | 值 | 描述 |
k_ERemoteStorageLocalFileChange_Invalid | 0 | 未使用。 |
k_ERemoteStorageLocalFileChange_FileUpdated | 1 | 文件内容已改变。 |
k_ERemoteStorageLocalFileChange_FileDeleted | 2 | 文件已被删除。 |
ERemoteStorageFilePathType
用于可能以不同形式返回文件路径的 API。 参见
GetLocalFileChange。
名称 | 值 | 描述 |
k_ERemoteStorageFilePathType_Invalid | 0 | 未使用。 |
k_ERemoteStorageFilePathType_Absolute | 1 | 提供了绝对磁盘路径。 此类路径用于通过 AutoCloud 管理的文件。 |
k_ERemoteStorageFilePathType_APIFilename | 2 | 提供了 ISteamRemoteStorage API 相对路径。 这种类型的路径用于通过 ISteamRemoteStorage API 方法(FileWrite、FileRead 等)管理的文件。 |
ERemoteStoragePlatform
同步平台标记。 可以与
SetSyncPlatforms 一起使用,将文件限制在特定的操作系统。
名称 | 值 | 描述 |
k_ERemoteStoragePlatformNone | 0 | 此文件将不会在任何平台下载。 |
k_ERemoteStoragePlatformWindows | (1 << 0) | 此文件将在 Windows 下载。 |
k_ERemoteStoragePlatformOSX | (1 << 1) | 此文件将在 macOS 下载。 |
k_ERemoteStoragePlatformPS3 | (1 << 2) | 此文件将在 PlayStation 3 下载。 |
k_ERemoteStoragePlatformLinux | (1 << 3) | 此文件将在 SteamOS/Linux 下载。 |
k_ERemoteStoragePlatformReserved2 | (1 << 4) | 保留。 |
k_ERemoteStoragePlatformAll | 0xffffffff | 此文件将在各平台下载。 默认为此值。 |
ERemoteStoragePublishedFileVisibility
创意工坊物品的可见状态种类。
名称 | 值 | 描述 |
k_ERemoteStoragePublishedFileVisibilityPublic | 0 | 所有人可见。 |
k_ERemoteStoragePublishedFileVisibilityFriendsOnly | 1 | 仅好友可见。 |
k_ERemoteStoragePublishedFileVisibilityPrivate | 2 | 仅物品作者可见。 若需将创意工坊物品从 API 中删除,将其设置为私有是最接近的做法。 |
k_ERemoteStoragePublishedFileVisibilityUnlisted | 3 | 对所有人可见,但不会在任何全局查询中返回。 也不会在任何用户列表中返回,除非调用方是创建者或订阅者。 |
EUGCReadAction
与
UGCRead 一起使用的 UGC 读取操作种类。
名称 | 值 | 描述 |
k_EUGCRead_ContinueReadingUntilFinished | 0 | 一直保持文件句柄打开,直至最后一个字节已读取。 在按顺序读取大文件(100MB 以上)区块时,您可以使用此操作。 如果最后一个字节已读取,此操作将与 k_EUGCRead_Close 相同。 否则,将与 k_EUGCRead_ContinueReading 相同。 此值保持 EUGCReadAction 参数引入之前的相同行为。 |
k_EUGCRead_ContinueReading | 1 | 一直保持文件句柄打开。 在使用 UGCRead 搜寻文件的不同部分时使用。 搜寻完成后,使用 k_EUGCRead_Close 进行最后调用,以将其关闭。 |
k_EUGCRead_Close | 2 | 释放文件句柄。 读取内容完成后使用。 若想再从 Steam 读取该文件,您需要再次调用 UGCDownload。 |
EWorkshopEnumerationType
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
名称 | 值 | 描述 |
k_EWorkshopEnumerationTypeRankedByVote | 0 | |
k_EWorkshopEnumerationTypeRecent | 1 | |
k_EWorkshopEnumerationTypeTrending | 2 | |
k_EWorkshopEnumerationTypeFavoritesOfFriends | 3 | |
k_EWorkshopEnumerationTypeVotedByFriends | 4 | |
k_EWorkshopEnumerationTypeContentByFriends | 5 | |
k_EWorkshopEnumerationTypeRecentFromFollowedUsers | 6 | |
EWorkshopFileAction
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
名称 | 值 | 描述 |
k_EWorkshopFileActionPlayed | 0 | 用户已玩过此物品,或已在物品上玩过。 (如装备武器或关卡。) |
k_EWorkshopFileActionCompleted | 1 | 用户已使用完此物品。 (如到达线性地图的终点。) |
EWorkshopFileType
共享文件将与社区共享的方式。
名称 | 值 | 描述 |
k_EWorkshopFileTypeFirst | 0 | 只用于枚举。 |
k_EWorkshopFileTypeMicrotransaction | 1 | 需要投票选择后在游戏内销售的创意工坊物品。 (参见:鉴选型创意工坊) |
k_EWorkshopFileTypeCollection | 2 | 一套创意工坊物品。 |
k_EWorkshopFileTypeArt | 3 | 艺术作品。 |
k_EWorkshopFileTypeVideo | 4 | 外部视频。 |
k_EWorkshopFileTypeScreenshot | 5 | 截图。 |
k_EWorkshopFileTypeGame | 6 | 未使用。过去用于参与青睐之光的游戏。 |
k_EWorkshopFileTypeSoftware | 7 | 未使用。过去用于参与青睐之光的软件。 |
k_EWorkshopFileTypeConcept | 8 | 未使用。曾用于青睐之光相关概念。 |
k_EWorkshopFileTypeWebGuide | 9 | Steam 网页指南。 |
k_EWorkshopFileTypeIntegratedGuide | 10 | 应用程序集成指南。 |
k_EWorkshopFileTypeMerch | 11 | 需要投票选择后销售的创意工坊商品。 |
k_EWorkshopFileTypeControllerBinding | 12 | Steam 控制器绑定。 |
k_EWorkshopFileTypeSteamworksAccessInvite | 13 | 只在 Steam 内部使用。 |
k_EWorkshopFileTypeSteamVideo | 14 | Steam 视频。 |
k_EWorkshopFileTypeGameManagedItem | 15 | 完全由游戏管理,不由用户管理,且不显示在网页上。 |
k_EWorkshopFileTypeMax | 16 | 只用于枚举。 |
EWorkshopVideoProvider
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
名称 | 值 | 描述 |
k_EWorkshopVideoProviderNone | 0 | 物品无视频。 |
k_EWorkshopVideoProviderYoutube | 1 | 物品有 Youtube 视频。 |
EWorkshopVote
已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。
名称 | 值 | 描述 |
k_EWorkshopVoteUnvoted | 0 | 用户尚未投票。 |
k_EWorkshopVoteFor | 1 | 用户已投票支持此物品。 |
k_EWorkshopVoteAgainst | 2 | 用户已投票不支持此物品。 |
k_EWorkshopVoteLater | 3 | 用户已选择以后再投票。 |
Typedef
以下是定义来与 ISteamRemoteStorage 一起使用的 typedef。
名称 | 基础类型 | 描述 |
PublishedFileId_t | uint64 | 创意工坊单个物品的独一无二的句柄。 |
PublishedFileUpdateHandle_t | uint64 | 已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。 |
UGCFileWriteStreamHandle_t | uint64 | 异步写入 Steam 云时使用的句柄。 |
UGCHandle_t | uint64 | 用户生成内容的独一无二的句柄。 |
常量
以下是定义来与 ISteamRemoteStorage 一起使用的常量。
名称 | 类型 | 值 | 描述 |
k_cchFilenameMax | uint32 | 260 | Steam 云文件路径可以使用的最大长度。 |
k_cchPublishedDocumentChangeDescriptionMax | uint32 | 8000 | 未使用。 |
k_cchPublishedDocumentDescriptionMax | uint32 | 8000 | 创意工坊物品描述可以使用的最大字节数。 |
k_cchPublishedDocumentTitleMax | uint32 | 128 + 1 | 创意工坊物品标题可以使用的最大字节数。 |
k_cchPublishedFileURLMax | uint32 | 256 | 一个创意工坊物品 URL 可以使用的最大字节数。 |
k_cchTagListMax | uint32 | 1024 + 1 | 用逗号分隔的创意工坊物品标签列表可以使用的最大字节数。 |
k_PublishedFileIdInvalid | PublishedFileId_t | 0 | 无效的创意工坊物品句柄。 |
k_PublishedFileUpdateHandleInvalid | PublishedFileUpdateHandle_t | 0xffffffffffffffffull | 已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。 |
k_UGCFileStreamHandleInvalid | UGCFileWriteStreamHandle_t | 0xffffffffffffffffull | 使用 FileWriteStreamOpen 出错时返回。 |
k_UGCHandleInvalid | UGCHandle_t | 0xffffffffffffffffull | 无效的 UGC 句柄。 这通常由表明出错的函数返回。 |
k_unEnumeratePublishedFilesMaxResults | uint32 | 50 | 已弃用 - 只与已弃用的基于 RemoteStorage 的创意工坊 API 一起使用。 |
k_unMaxCloudFileChunkSize | uint32 | 100 * 1024 * 1024 | 定义 Steam 云允许的最大文件大小。 云文件不能以单个大小超过 100 MiB 的区块写入,且总大小不能超过 200 MiB。 |
STEAMREMOTESTORAGE_INTERFACE_VERSION | const char * | "STEAMREMOTESTORAGE_INTERFACE_VERSION014" | |