﻿文件比较器 —— 使用说明
================================================

■ 这是什么
  一个文件夹对比工具。选择两个文件夹后，它会找出：
    · 哪些文件内容不同
    · 哪些文件只在 A 里有
    · 哪些文件只在 B 里有
    · 哪些文件完全相同
  文本文件可逐行查看差异，差异文件可打包成 ZIP 导出。

■ 运行环境
  · Windows XP SP3 / Vista / 7 / 8 / 8.1 / 10 / 11 都能跑
  · 单文件程序，不需要安装；不想要了直接删掉文件即可
  · 若提示"需要 .NET Framework"，说明系统还没启用 .NET 3.5：
      Windows 8 / 8.1 / 10 / 11：控制面板 → 程序和功能 →
        启用或关闭 Windows 功能 → 勾选
        「.NET Framework 3.5（包括 .NET 2.0 和 3.0）」→ 确定
      Windows 7 / Vista / XP：一般自带，或自行安装 .NET Framework 3.5
  · 程序不联网，不依赖任何第三方运行库

■ 怎么用
  1. 分别选择「文件夹 A」和「文件夹 B」
     · 点「选择文件夹…」浏览选择
     · 或把路径直接粘到「文件拖拽或路径粘贴」框里，按回车或点「确定」
       （支持 .lnk 快捷方式、%环境变量%、以及资源管理器"复制路径"带引号的格式。
        系统自带的"浏览文件夹"对话框选不中快捷方式，用这个框就能绕开）
     · 也可以把文件夹直接从资源管理器拖到窗口上
  2. 点「开始对比」（比到一半可以点「取消」中断）
  3. 结果分成四类显示，双击"内容不同"里的文本文件可逐行看差异
  4. 需要时点「导出差异文件 (ZIP)」把差异打包保存

  快捷键：Ctrl+Enter 开始对比，Ctrl+E 导出，Ctrl+T 窗口置顶
  差异窗口里：F3 / F4（或 Ctrl+N / Ctrl+P）跳到下一处 / 上一处改动，Esc 关闭

■ 让窗口一直显示在最前面
  勾上按钮那一行右侧的「窗口置顶」，窗口就始终待在其他程序上面
  （比如一边看网页/文档一边对比）。再点一次是取消，也可以按 Ctrl+T。

■ 不想比的文件：忽略规则
  勾上预设或自己写几条规则，命中的文件就不参与对比，导出 ZIP 里也不会有它们。
  这样 .git、node_modules、日志之类的东西不会把真正的差异淹掉。

  入口：按钮那一行的「忽略规则…」按钮 → 弹出的小窗口里设置。

  三个预设（勾一下就行）：
    · 版本控制目录      .git/  .svn/  .hg/  .bzr/  CVS/
    · 系统与临时文件    Thumbs.db  desktop.ini  .DS_Store  ~$*  *.tmp  *.swp
    · 日志与备份        *.log  *.bak  *.old  *.orig

  自定义规则（每行一条）语法：
    *      任意字符（不跨目录）      ?   单个字符
    **/    任意层级                  行尾 /  只匹配目录（整个目录连同内容一起忽略）
    行首 ! 例外，把已忽略的再放回来
    # 或 ; 开头是注释行
  例：  node_modules/      build/**        *.log        !keep.log

  几点说明：
    · 默认不启用，要自己勾上才生效（按钮上会写「忽略规则 (19)」，表示有 19 条规则在跑）
    · 文件夹信息里会写「已忽略 3 个文件、2 个目录」，一眼看得出过滤掉了多少
    · 规则会被记住，下次打开还在
    · 改完规则会立刻按新规则重新扫描并重新对比

■ 历史记录：每次对比都留一份底
  只要「开始对比」跑完一次，就会自动记一条（不需要导出）；入口是按钮那一行的
  「历史记录…」按钮。每条记着：对比时间、两个文件夹、四类计数
  （3 不同 / 2 增 / 2 缺 / 3 同），以及当时的完整差异清单（相对路径和大小）。

  能做的：
    · 双击某条（或选中后点「还原」）→ 回到那次对比完的界面，清单、汇总数字都在
    · 在还原出来的界面上还能再「导出差异文件 (ZIP)」→ 按当前磁盘上的文件重新打包，
      包里会注明"本包由历史记录重新打包"，并写明有几个文件与记录不一致
    · 某条右边有勾选框：点「清理」这一列的任意位置都能打勾（不必正好点中小方框），
      点该列的列表头 = 全选 / 全不选。勾上一条或多条 → 底部按钮变成「清理选中的 N 条」；
      一条都不勾 → 按钮是「一键清理历史记录」。两种清理都会再弹一次确认框；
      确认框里会写清楚这次到底删几条
    · 「重新对比」= 拿这条的两个路径按当前内容重跑一遍（跑完会新增一条）
    · 如果其中一个文件夹被删了/移走了：还原时会提示
      「X 文件夹已被删除或已被移除」，「导出差异文件」会置灰（清单仍然能看）
    · 每次对比都是新增一条，不会覆盖旧的；之后要是导出了 ZIP，会把导出文件名
      补记到刚才那条上（鼠标停在某条上就能看到导出到哪）
    · 最多留 20 条 / 压缩后 5MB，超了自动删最旧的；数据在
      %APPDATA%\文件比较器\历史.dat（另有 .bak 备份）

■ 联系作者
  窗口右下角有一个常驻的「联系作者」小按钮，点它用默认浏览器
  打开 https://b23.tv/7ojZmWb 。

■ 被杀毒软件 / 电脑管家拦了怎么办
  （内容与同目录的「请先读我.txt」一致，这里再放一份备查）

  本程序没有数字签名（个人作品没买代码签名证书），又是刚从网上下载的，
  所以有可能被"下载保护 / 云查杀"拦下、或提示"未知程序、建议阻止"。
  这是误报（典型名字长得像 Trojan:Win32/Wacatac.B!ml、HEUR/QVM 之类），
  不是文件真的有毒。三招解决，按顺序试：

  1) 解除"来自互联网"标记 —— 最常见也最有效的一招
     右键 exe → 属性 → 最下面勾上「解除锁定 (Unblock)」→ 确定，再双击运行。
     （凡是网上下载的文件，Windows 都会打上这个标记，杀软和 SmartScreen 因此更严格）

  2) 把文件加进杀毒软件的信任区 / 白名单
     · Windows Defender：设置 → 隐私和安全性 → 病毒和威胁防护 → 排除项 → 添加文件
     · 360 安全卫士：木马查杀 → 右下角「信任区」→ 添加文件；或 设置中心 → 白名单
     · 火绒：设置 → 信任区　　· 腾讯电脑管家：设置 → 病毒查杀 → 信任区
     把文件或它所在的整个文件夹加进去即可。

  3) 如果是"下载保护"弹窗：选「允许本次运行 / 信任此文件」。

  想更稳妥，也可以把误报报给厂商（免费，一般几天内处理）：
     · 微软：https://www.microsoft.com/en-us/wdsi/filesubmission
     · 360 ：https://open.soft.360.cn/report.php
     · 火绒：https://bbs.huorong.cn （论坛，需注册）
  说明里写上"自研小工具，无签名，被误报"，附上 exe 即可。

■ 备注
  · 程序不联网、不下载任何东西；不写注册表启动项、不加开机自启；关掉窗口就退出，
    不留后台进程。只在自己的目录里读写：%APPDATA%\文件比较器\（设置与历史记录）
  · 涉及删除的操作只有两处，都会先弹确认框：清理历史记录、清除结果。
