在Steam平台上,每个已安装的游戏都对应一个.acf文件,这些文件存储于Steam安装目录下的steamapps文件夹中,通过读取并解析这些acf文件,我们可以轻松获取本机已安装的所有Steam游戏信息,包括游戏名称、App ID、安装路径等,这种方法无需调用Steam Web API,完全离线运行,适用于本地游戏管理、备份或自动化脚本编写。
什么是acf文件?

.acf(Application Configuration File)是Steam客户端用于记录每个游戏应用配置的文本文件,每个已安装的游戏(包括Steam本身和工具)在steamapps目录下都会生成一个类似appmanifest_730.acf的文件(数字部分为游戏的App ID),文件内容采用Valve的键值对格式(KeyValues),类似于简单的JSON结构。
一个典型的acf文件内容如下:
"AppState"
{
"appid" "730"
"name" "Counter-Strike: Global Offensive"
"sizeondisk" "30123456789"
"installdir" "Counter-Strike Global Offensive"
"LastUpdated" "1678901234"
"StateFlags" "4"
}
如何获取acf文件?
acf文件位于Steam的默认安装目录下,常见路径为:
- Windows:
C:\Program Files (x86)\Steam\steamapps\ - macOS:
~/Library/Application Support/Steam/steamapps/ - Linux:
~/.local/share/Steam/steamapps/
如果你将Steam安装在其他位置,请相应调整路径,只需进入该文件夹,即可看到所有以appmanifest_开头的acf文件。
如何解析acf文件获取游戏信息?
我们可以使用编程语言(如Python)轻松解析这些文件,以下是一个简单的Python脚本示例:
import os
import re
steamapps_path = r"C:\Program Files (x86)\Steam\steamapps" # 请根据实际情况修改
def parse_acf(file_path):
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
# 使用正则提取关键字段
appid = re.search(r'"appid"\s+"(\d+)"', content)
name = re.search(r'"name"\s+"([^"]+)"', content)
installdir = re.search(r'"installdir"\s+"([^"]+)"', content)
if appid and name and installdir:
return {
'appid': appid.group(1),
'name': name.group(1),
'installdir': installdir.group(1)
}
return None
games = []
for filename in os.listdir(steamapps_path):
if filename.startswith('appmanifest_') and filename.endswith('.acf'):
file_path = os.path.join(steamapps_path, filename)
game_info = parse_acf(file_path)
if game_info:
games.append(game_info)
# 打印所有游戏
for game in games:
print(f"AppID: {game['appid']}, Name: {game['name']}, Installdir: {game['installdir']}")
运行后,你会看到类似下面的输出:
AppID: 730, Name: Counter-Strike: Global Offensive, Installdir: Counter-Strike Global Offensive
AppID: 570, Name: Dota 2, Installdir: dota 2 beta
AppID: 440, Name: Team Fortress 2, Installdir: tf
...
高级用法与注意事项
- 处理大型游戏库:如果
steamapps文件夹中有数百个acf文件,上述脚本依然高效,因为每个文件都很小。 - 获取更多字段:acf文件中还包含
sizeondisk(磁盘占用)、LastUpdated(上次更新时间戳)、StateFlags(状态标志)等,你可以根据需要扩展正则表达式。 - 跨平台支持:上述Python脚本在Windows、macOS、Linux上均可运行,只需修改
steamapps_path。 - 注意事项:
- 某些游戏可能没有对应的acf文件(如非Steam游戏快捷方式)。
- 如果Steam正在运行,acf文件可能被锁定,建议关闭Steam后再读取。
- 对于Steam库位于其他磁盘的情况,acf文件可能出现在多个
steamapps目录中(如D:\Steam\steamapps\),请确保遍历所有可能的路径。
应用场景
- 游戏备份脚本:根据acf文件中的
installdir和sizeondisk,编写自动备份或迁移工具。 - 本地游戏管理工具:快速列出所有已安装游戏及其安装路径,方便手动管理。
- 统计磁盘占用:汇总所有游戏的
sizeondisk,计算Steam库总大小。 - 配合第三方工具:如使用
steamcmd卸载游戏时,可通过acf文件验证操作。
acf文件是Steam客户端隐藏的宝库,通过简单解析即可获得本机所有Steam游戏的完整信息,无论你是游戏玩家、开发者还是系统管理员,掌握这种方法都能极大提升本地游戏管理的效率,动手试试吧,只需几行代码,你就能拥有一个属于自己的Steam游戏清单。

