mirror of
https://wget.la/https://github.com/Wxw-Gu/WechatExplorer
synced 2026-08-17 19:47:08 +08:00
fix(paths): 同步 imageKeyRoot 与 dbRoot,仅识别 xwechat_files
之前的状态面板(chat.getCurrentAccountRoot())和自动获取图片密钥(settings.imageKeyRoot) 走两个完全不同的来源,二者漂移导致状态显示 D 盘但实际扫描到 C 盘。 index.ts: - key:autoGetImageKey 优先级调整为 chat.getCurrentAccountRoot() → self.accountRoot → settings.imageKeyRoot → settings.dbRoot,让运行时识别的目录永远最优先。 - db:init:保存 dbRoot 时同步更新 imageKeyRoot,避免 settings 缓存漂移。 - db:reopenWithRoot:用户手动切换根目录时同步更新 imageKeyRoot。 settings-store.ts: - loadSettings:dbRoot 修正时同步 imageKeyRoot;若 imageKeyRoot 指向旧路径或不存在, 回退到 dbRoot。 - 新增 redirectLegacyWeChatFilesToXwechat():当 settings 里的 dbRoot/imageKeyRoot 仍指向 V3 时代的 "Documents\WeChat Files" 路径时,自动重定向到同目录下的 xwechat_files(如果存在)。 老用户升级时无需手动迁移。 wcdb4-client / windows-db-root-discovery / key-service-win: - 候选目录列表只保留 xwechat_files 形态(Documents\xwechat_files、 AppData\Roaming\Tencent\xwechat_files、macOS 的 Library/Containers/.../xwechat_files), 移除 V3 时代的 "WeChat Files" 候选。 - DB_ROOT_NAMES 只包含 xwechat_files,自动扫描也只认 V4 路径。 V3 数据(V1 头 dat / WeChat Files 目录结构)如果用户机器上还存在,仅作为残留, 不会被 WechatExplorer 当成有效数据源。
This commit is contained in:
@@ -311,11 +311,10 @@ export class Wcdb4Client {
|
||||
private static getDefaultRootCandidates(): string[] {
|
||||
const home = os.homedir()
|
||||
if (process.platform === 'win32') {
|
||||
// 仅支持 WeChat 4.0:只认 xwechat_files,V3 时代的 "WeChat Files" 不再加入候选
|
||||
const candidates = [
|
||||
...Wcdb4Client.getWeflowDbPathCandidates(home),
|
||||
path.join(home, 'Documents', 'WeChat Files'),
|
||||
path.join(home, 'Documents', 'xwechat_files'),
|
||||
path.join(home, 'WeChat Files'),
|
||||
path.join(home, 'AppData', 'Roaming', 'Tencent', 'xwechat_files')
|
||||
]
|
||||
candidates.push(...discoverWindowsDbRoots())
|
||||
|
||||
Reference in New Issue
Block a user