Skip to content

Repository files navigation

wechat-dedup

自动扫描并清理微信电脑版重复下载的文件

Python License Tests

微信电脑版在自动下载文件时,同一份文件被多次下载会产生 报告(1).pdf报告(2).pdf 这样的重复文件,占用磁盘空间。wechat-dedup 可以自动扫描并删除这些重复文件。


特性

  • 🔍 自动发现微信目录 — 无需手动指定路径,自动探测微信下载文件夹
  • 🎯 双重验证 — 文件名模式匹配 + SHA-256 内容哈希,绝不误删
  • 🗑️ 安全删除 — 默认预览模式,支持移入回收站(可恢复)
  • 📊 多种输出 — 支持表格、JSON、CSV 格式
  • 定时任务 — 一键安装 Windows 计划任务,每天自动清理
  • 🌏 中文支持 — 完美处理中文文件名

快速开始

方式 A:pip 安装(推荐 Python 用户)

# 克隆项目
git clone https://github.com/buguoshixc/wechat-cleaner.git
cd wechat-dedup

# 安装
pip install -e .

# 运行
wechat-dedup scan

方式 B:exe 可执行文件(无需 Python)

Releases 下载 wechat-dedup.exe,放到任意目录,在终端中运行:

wechat-dedup.exe scan

使用方法

基本扫描(仅预览)

# 自动探测微信目录并扫描
wechat-dedup scan

# 指定目录扫描
wechat-dedup scan --paths "D:\Documents\WeChat Files"

删除重复文件

# 移入回收站(推荐,可恢复)
wechat-dedup scan --use-trash

# 自动确认,无需手动确认
wechat-dedup scan --use-trash -y

# 永久删除(不可恢复)
wechat-dedup scan --permanent -i

# 跳过哈希验证(更快但不安全)
wechat-dedup scan --no-hash

输出格式

# JSON 输出(便于脚本处理)
wechat-dedup scan --output json

# CSV 输出
wechat-dedup scan --output csv

定时任务

# 安装每日凌晨 2:00 自动清理任务
wechat-dedup schedule --install

# 自定义时间
wechat-dedup schedule --install --time "03:00"

# 查看任务状态
wechat-dedup schedule --status

# 卸载定时任务
wechat-dedup schedule --uninstall

工作原理

两层检测机制

第 1 层:文件名模式匹配

匹配微信的命名规则:文件名(N).扩展名

文件名 规范名 判定
报告.pdf 报告.pdf 原始文件
报告(1).pdf 报告.pdf 疑似重复
报告(2).pdf 报告.pdf 疑似重复

第 2 层:内容哈希验证

对疑似重复的文件计算 SHA-256 哈希值,只有内容完全一致才算真重复。

报告(1).pdf  (1.2MB, SHA-256: abc123...)  ← 与原始一致 → ✓ 真重复
报告(2).pdf  (1.2MB, SHA-256: abc123...)  ← 与原始一致 → ✓ 真重复
报告(3).pdf  (0.8MB, SHA-256: def456...)  ← 与原始不同 → ✗ 不是重复,保留

配置

创建 config.json(可参考 config.example.json):

{
    "scan_paths": ["D:\\Documents\\WeChat Files"],
    "exclude_patterns": ["Msg/**", "Config/**", "*.db"],
    "retention_rule": "keep_original",
    "deletion": {
        "method": "dry_run",
        "confirm_each": true
    },
    "hash_verification": {
        "enabled": true,
        "algorithm": "sha256"
    }
}

保留规则

规则 说明
keep_original 保留不带 (N) 后缀的文件
keep_smallest_index 保留序号最小的文件
keep_newest 保留最后修改的文件
keep_largest 保留体积最大的文件

常见问题

Q: 微信目录找不到怎么办?

手动指定扫描路径:

wechat-dedup scan --paths "你的微信下载目录路径"

常见微信文件路径:

  • C:\Users\<用户名>\Documents\WeChat Files\<wxid>\FileStorage\File
  • D:\Documents\WeChat Files\<wxid>\FileStorage\File

Q: 误删了文件怎么办?

如果使用了 --use-trash(回收站模式),可以在 Windows 回收站中恢复。

Q: 可以排除某些目录不扫描吗?

可以,通过 --exclude 参数或 config.jsonexclude_patterns

wechat-dedup scan --exclude "Video/**" "Image/**"

开发

# 克隆项目
git clone https://github.com/buguoshixc/wechat-cleaner.git
cd wechat-dedup

# 安装开发依赖
pip install -e ".[dev]"

# 运行测试
pytest tests/ -v

# 查看帮助
wechat-dedup --help

项目结构

wechat-dedup/
├── pyproject.toml
├── config.example.json
├── src/wechat_dedup/
│   ├── cli.py          # CLI 入口
│   ├── scanner.py      # 文件扫描 + 正则匹配
│   ├── hasher.py       # SHA-256 内容哈希
│   ├── remover.py      # 安全删除
│   ├── reporter.py     # 结果输出
│   ├── config.py       # 配置管理
│   └── scheduler.py    # 定时任务
├── tests/              # 单元测试
└── scripts/            # PowerShell 脚本

License

MIT © wechat-dedup contributors

About

用于清理微信的重复下载文件

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages