windows软件数据有软件放在roaming也有放local的为什么

15 次阅读

本文最后更新于 2026年8月23日。

Windows 里 AppData 分成三个目录:

C:\Users\<用户名>\AppData\
├── Roaming
├── Local
└── LocalLow

软件放哪里不是强制规定,而是根据数据用途决定。


1. Roaming:需要跟用户走的数据

路径:

C:\Users\<用户名>\AppData\Roaming

设计目标:

用户配置可以随着用户账号漫游(Roaming)

最初用于公司域环境:

例如:

  • 用户 A 登录公司电脑1

  • 配置同步到服务器

  • 用户 A 登录电脑2

  • 软件配置还能保持

适合保存:

✅ 用户设置
✅ 软件偏好
✅ 账号信息
✅ 快捷键配置
✅ 插件配置
✅ 小型数据库

例如:

Roaming
 ├─ Code
 │   └─ User
 │       └─ settings.json
 │
 ├─ Obsidian
 │
 └─ Mozilla

典型:

  • VS Code 配置

  • Firefox 配置

  • 一些 Electron/Tauri 应用


2. Local:只属于本机的数据

路径:

C:\Users\<用户名>\AppData\Local

设计目标:

本机缓存,不参与漫游

适合:

✅ 大文件
✅ 缓存
✅ 临时数据
✅ 日志
✅ 下载内容
✅ 自动更新文件

例如:

Local
 ├─ Google
 │   └─ Chrome
 │       └─ User Data
 │
 ├─ Microsoft
 │
 └─ Programs

Chrome 放这里:

Local\Google\Chrome\User Data

因为:

  • 浏览器缓存巨大

  • 不应该同步

  • 每台电脑重新生成即可


3. LocalLow:低权限沙箱数据

主要给:

  • IE Protected Mode

  • Unity

  • 老游戏

现在较少见。

例如:

AppData\LocalLow\Unity

为什么 Electron/Tauri 软件经常两个地方都有?

例如:

AppData
├── Roaming
│   └── LeePanel
│       └── config.db
│
└── Local
    └── LeePanel
        ├── cache
        ├── logs
        └── updates

原因:

Roaming

放:

servers.db
settings.json

因为:

  • SSH服务器列表

  • 用户配置

  • 软件偏好

这些是"你的设置"


Local

放:

cache/
logs/
temp/
updates/

因为:

  • 很大

  • 不需要同步

  • 换电脑重新生成


对开发者来说怎么选择?

简单规则:

数据 放哪里
用户配置 Roaming
登录信息 Roaming(注意加密)
SQLite业务数据 Roaming
缓存 Local
日志 Local
下载文件 Local
自动更新包 Local
临时文件 Local

Tauri / Electron 常见规律

Electron

通常:

Roaming\AppName

存:

settings
preferences
database
Local\AppName

存:

Cache
GPUCache
logs

Tauri

Windows 默认遵循系统目录:

Rust:

app.path().app_data_dir()

通常对应:

Roaming\AppName

缓存:

app.path().cache_dir()

对应:

Local\AppName

所以你找 LeePanel 的配置时,优先看:

%APPDATA%\LeePanel

找缓存、日志、更新:

%LOCALAPPDATA%\LeePanel

这是 Windows 软件生态里比较标准的分工。