找到steam游戏文件夹

Find steam games folder

如何在不进行硬编码的情况下访问 Steam 游戏文件夹?

我可以使用涉及游戏 steamappid 的内容来自动获取此信息,而不是在我的代码中硬编码 C:\Steam\steamapps\common\<game_folder>\GameData 吗?

要获得 Steam 游戏文件夹,您必须按照以下步骤操作:

  1. 找到 Steam 安装文件夹
  2. 检查 Steam acf 文件和 libraryfolders.vdf

您可以在 windows 注册表中找到 Steam InstallPath

  • 32 位:HKEY_LOCAL_MACHINE\SOFTWARE\Valve\Steam
  • 64 位:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Valve\Steam

您可以 read a Value from a Registry Key 使用此代码:

Dim strSteamInstallPath as String = My.Computer.Registry.GetValue(
    "HKEY_LOCAL_MACHINE\SOFTWARE\Valve\Steam", "InstallPath", Nothing)

MsgBox("The install path is " & strSteamInstallPath)

一旦有了 Steam 主文件夹(包含 steam.exe 的文件夹),您就可以从 \steamapps 子文件夹中包含的 appmanifest_<steamappid>.acf 文件中读取游戏安装文件夹。

例如,appmanifest_2280.acf 包含有关 Ultimate Doom 的信息。

您可以搜索特定的 steamappid 或分析每个文件并从 name 键中获取游戏名称。

同时检查 \steamapps 子文件夹中的 libraryfolders.vdf 是否有其他游戏安装文件夹。

例如,我在 D:\mygames 中有一些游戏,所以我的 libraryfolders.vdf 是:

"LibraryFolders"
{
    "TimeNextStatsReport"   "xxxxxxxxxxx"
    "ContentStatsID"        "xxxxxxxxxxx"
    "1"                     "D:\mygames"
}

有了这个备用文件夹后,请检查 \steamapps 子文件夹中是否包含 acm 个文件。