移动文件之前,
先告诉你每个去哪
它翻一遍你的下载文件夹,按扩展名、文件名、日期和大小分好类, 每一行都写上“为什么进这个文件夹”,先给你看。 只有你点头的才会动,而且随时能全部撤回。
- 移动之前,逐个告诉你去哪、为什么
- 只移动勾选的,撤销一次全部还原
- 不覆盖 — 目标已存在时,内核会直接拒绝这次移动
- 免安装,一个程序;所有处理都在这台电脑上
| 选择 | 文件 | 新位置 | 原因 |
|---|---|---|---|
| 合同_ACME_2026.pdf | Documents/Contracts | 扩展名 .pdf · 文件名含“合同” | |
| ACME-invoice-0312.pdf | Documents/Invoices | 扩展名 .pdf · 文件名含“发票” | |
| screenshot 2026-09-10.png | Images/Screenshots | 扩展名 .png · 文件名含“截图” | |
| 销售结算_9月.xlsx | Spreadsheets | 扩展名 .xlsx | |
| playlist-bounce.mp3 | Audio | 扩展名 .mp3 | |
| ⚠ 报价单_最终.pdf | Documents/Quotes | 扩展名写 .pdf,内容却是程序 | |
| 备忘.txt | Documents | 已有同名 → 备忘 (1).txt | |
| unknown-blob.qqq | Other | 未知扩展名 | |
| VSCodeUserSetup-x64.exe | Installers | 扩展名 .exe |
分析 → 预览 → 开始整理
三步严格按顺序来。分析没完,不碰任何文件;没有你的同意,不会移动。
分析
文件夹在后台读取。隐藏文件、系统文件、符号链接以及 node_modules 这类文件夹都跳过。中途随时可以取消。
预览
文件、当前位置、新位置、分类理由都在一张表里。重名的会提前标出来,勾选框由你决定。
开始整理
只移动你勾选的,并把每一次移动都记下来。结果不满意,点一次[撤销]就回到原样。
整理该有的功能,做扎实
你的规则永远优先
用通配符、正则、扩展名、大小或时间写规则,并排优先级。合同* → Documents/Contracts。
看得见理由的分类
每一行都写清依据:“扩展名 .pdf → 文档 · 文件名含‘发票’→ Invoices”。
撤销
按操作记录来源和目标,再倒着还原。原位置若已被别的文件占了,就跳过而不是覆盖。
重名怎么办
重名就存成 报告 (1).pdf,或者跳过。任何情况下都不覆盖。
排除规则
不该碰的东西可以用规则排除:*.crdownload、小于设定大小的文件、整个文件夹。
定时整理
每天到点,只分析也行,连移动一起做也行。schedule --install 一行就把任务计划也登记好了。
长路径与非拉丁字符路径
超过 260 个字符的路径用 \\?\ 前缀处理,中文、日文、韩文路径都照常处理。
识破伪装的扩展名
“报价单.pdf”其实是程序,或者 发票.pdf.exe 这种双扩展名,都会被标上 ⚠。只有容易被冒充的扩展名才读前 512 字节。
查找重复文件
先比大小,再比头尾各 64KB 的哈希,最后比整个文件,三步筛完只把副本送进回收站。原件按名字判断后保留。
历史
每次扫描和移动都留在 SQLite 里。operation_items 一行一条:来源、目标、状态、理由、错误。
规则预设
一次添加面向学生、上班族、开发者、摄影/设计的规则组。添加前先告诉你什么会去哪里,你自己写的规则始终优先。
空间占用
以只读方式列出大文件、很久没动过的文件、各分类占用和磁盘剩余空间。清理的只有你选中的文件,而且只进回收站。
按月统计
在管理面板里查看每月整理量、总成功率,以及移入回收站释放的空间。规则可以导出为 JSON,分享给其他电脑。
界面不会卡住
扫描和移动都跑在工作线程上,1 万个文件扫描加分类约 5 秒。中途取消,记录照样留着。
六个步骤按顺序生效
上面定了,下面就不看了。日期和大小是在分类定下来之后,再添一层子文件夹。
- 自定义规则合同* → Documents/Contracts
- 扩展名.xlsx → Spreadsheets
- 文件名规则*invoice* → Documents/Invoices
- 日期Images/2026/09
- 大小Videos/Large
- 可选的内容分析只看文本前 8KB
| 分类 | 扩展名 |
|---|---|
| 文档 | pdf doc docx hwp hwpx txt md rtf odt |
| 图片 | jpg jpeg png webp gif bmp svg heic |
| 视频 | mp4 mov avi mkv webm |
| 音频 | mp3 wav flac m4a ogg |
| 压缩包 | zip 7z rar tar gz |
| 表格 | xls xlsx csv ods |
| 演示文稿 | ppt pptx odp |
| 安装程序 | exe msi msix |
| 其他 | 其余全部(未分类) |
一张表就能审完
用搜索筛一遍,右键到资源管理器里确认,再把勾选的移走。
什么时候移了什么,一页说清
按一下按钮(或者 omnisort-cli report),至今为止的整理记录就变成一页 HTML。不需要服务器,也不需要联网,可以直接存档或转给别人。
| ID | 类型 | 时间 | 状态 | 成功/总数 |
|---|---|---|---|---|
| #128 | 整理 | 09-11 03:00 | 完成 | 412/412 |
| #127 | 撤销 | 09-10 21:14 | 已撤销 | 37/37 |
| #126 | 整理 | 09-10 03:00 | 部分失败 | 298/300 |
| #125 | 回收站 | 09-09 18:02 | 完成 | 64/64 |
不删除。不覆盖。
整理工具一旦出错,丢的就是数据。所以不能撤销的操作,我们干脆没做。
- 绝不自动永久删除删除只走回收站。整理后空下来的文件夹也是送进回收站,而不是直接删掉。
- 不覆盖(由内核保证)调用方式本身就是“目标已存在则拒绝移动”。哪怕在“检查完到移动”之间冒出一个文件,也不会覆盖别人的东西。
- 临移动前再确认一次预览之后大小或修改时间变了、或者变成链接的文件,都不会被移动。
- 系统文件夹一律不碰受保护的路径在添加文件夹时就会被拒绝,扫描中遇到也会跳过。
- 动手前全部摊开来源、目标、有没有重名,全摆出来,只处理你勾的。
- 先记录,后移动每一项都先写进数据库再移动。中途断电也知道走到了哪一步。
- 正在写入的文件不动正在下载(.crdownload、.part)或刚刚改动过的文件会自动跳过。
- 中断了也能撤销整理途中程序挂了,下次启动会查清移到了哪一步,并整理成可以撤销的状态。
- 不跟着链接走不会顺着符号链接或联接跑到外面去;目标路径中间夹着链接时直接拒绝。
- 出不了根目录规则里不能写
..、绝对路径或网络路径;最终路径一旦落在整理根目录之外,就不会移动。
不能作为目标的位置
- C:\Windows
- C:\Program Files
- C:\Program Files (x86)
- C:\ProgramData
- %LOCALAPPDATA% · %APPDATA%
- C:\$Recycle.Bin
- System Volume Information
- 磁盘根目录(C:\)
这份清单不是想出来的,是撞上去才有的
移动文件的程序之所以危险,不是因为功能不够,而是文件会在没人想到的地方消失。下面每一条都是我们真的撞上并修好的。
- 有些文件进不了回收站网络或可移动驱动器上的文件、比回收站还大的文件、关闭了回收站的驱动器。这时 Windows 会不询问就永久删除。我们会先确认,做不到就原样保留并记下原因。
- 移动中拔掉 U 盘,两份都会没跨驱动器移动,其实是先复制再删除原文件。我们会等复制真正写入磁盘之后才删原件。这样会慢一些,但这才是对的。
- 文件夹可能其实指向别处联接点、8.3 短文件名、管理共享(
\\host\C$)、设备路径。绕回受保护文件夹的四条路,逐一封堵。 - 刚选好的名字,可能在那一瞬被抢走刚选定一个不重名的新名字,另一个程序就可能用这个名字建文件。我们的调用方式让内核直接拒绝,所以即使如此也不会覆盖别人的文件。
- 来自 Mac 的中韩文文件名并不是同一串字符屏幕上同样显示
계약서.pdf,但存储形式不同,规则会悄悄错过。我们只在比较时对齐——文件名本身绝不改动。 - 能被改的记录不算记录每次整理都会在前一条记录之上盖下封印。改一行、删一条、塞进一条假的,后面全部对不上,立刻暴露。
不是嘴上说说,是构建在把关
- 不永久删除
- 不覆盖
- 移动前再次确认
- 拒绝受保护路径
- 先记录,后移动
- 对外只有一条出口
这六条,只要有代码违反,发布本身就会被拦下。
你可以自己查。[管理]界面会显示这台电脑实际向外发出的次数。刚装好时显示“从未发生”。
可以挂到任务计划程序上的控制台版本
和窗口版用同一个数据库、同一套规则。不加 --apply 就绝不会动任何文件。
# 登记要整理的文件夹 omnisort-cli add "C:\Users\me\Downloads" # 只看谁去哪(不移动) omnisort-cli preview # 添加规则:合同进 Contracts,正在下载的排除 omnisort-cli rules add --name 合同 --glob "合同*" --target Documents/Contracts omnisort-cli rules add --name 临时 --glob "*.crdownload" --exclude # 真正整理 · 撤销 · 查看记录 omnisort-cli run --apply --yes omnisort-cli undo omnisort-cli history # 查重复 · 只留原件,其余进回收站 omnisort-cli duplicates omnisort-cli duplicates --trash # 查看大文件、旧文件、磁盘空间(只读) omnisort-cli space --old-days 365 # 查看规则预设 · 添加学生用规则组 omnisort-cli rules preset omnisort-cli rules preset student # 把预览存成 CSV(Excel 能打开) omnisort-cli export plan.csv # 每天 03:00 定时 — 一行连任务计划都登记好 omnisort-cli config schedule_time 03:00 omnisort-cli schedule --install omnisort-cli schedule --check
比移动更难的,是移错了的时候
盯着文件夹、按规则立刻移动的工具很快,但什么去了哪里,要等移完才知道。OmniSort 把顺序倒了过来。
| 项目 | 手动整理 | 按规则直接移动的工具 | OmniSort |
|---|---|---|---|
| 移动前看到去向 | 自己判断 | 移完才知道 | 每个文件的去向和理由 |
| 移错了的时候 | 全凭记忆 | 因工具而异 | 按操作整批撤销,旧操作也行 |
| 同名文件 | 全靠覆盖提示 | 因工具而异 | 任何情况下都不覆盖 |
| 伪装扩展名的文件 | 很难察觉 | 不检查内容 | 读取内容,标上 ⚠ |
| 清理重复和大文件 | 在资源管理器里一个个来 | 需要另找工具 | 一个程序搞定,只进回收站 |
| 网络与账号 | 不需要 | 因工具而异 | 不需要,默认什么都不外传 |
下载后直接运行
没有安装程序。把这一个可执行文件放到任意文件夹里运行,就完事了。
三步
- 从发布页面下载
OmniSort.exe(想用命令行的话,再下载omnisort-cli.exe) - 把下载的文件放到任意文件夹,双击运行
- 用[+ 添加]加入 Downloads 文件夹,再点[分析]
v0.2.5 · 30.0 MB · SHA-256 5860ec06424701deb14ab387ab6917b21c1848b298494b7f24dc89e7e529953a
需要什么
- 操作系统
- Windows 10 / 11(64 位)
- 安装
- 不需要 · 也不需要管理员权限
- 网络
- 不需要 · 只有你开启的联网功能才会用到
- 留下的东西
- 可执行文件、记录用的 DB 文件,以及整理过的文件夹里的小标记文件
如果弹出“Windows 已保护你的电脑”
OmniSort 已进行代码签名,但新发布的版本下载的人还不多,SmartScreen 可能会在一段时间内要求确认。点[更多信息],确认发布者是 PROJECTTEAMFORYOU 后再点[仍要运行]。如果发布者名称不同或没有显示,请不要运行。
想确认下载的文件和发布的是否一致,可以在 exe 所在的文件夹里打开 PowerShell,运行下面的命令,把得到的值和发布页面上的 SHA-256 对比。
Get-FileHash .\OmniSort.exe -Algorithm SHA256
开始之前值得知道的
会把文件传到网上吗?
不会。扫描、分类、移动、记录全都在这台电脑上完成,文件名和路径都不会外传。设置和日志只存在 %LOCALAPPDATA%\OmniSort\omnisort.db 这一个文件里。
完全不联网吗?
默认一次都不用。只有你在管理面板里亲自打开检查新版、公告或下载次数时才会获取,而且那时也不发送任何文件信息(检查新版时只带上版本号)。会发出去什么,那个面板上连地址都写得清清楚楚。
免费吗?
是的。免费使用,不需要账号,也不用付费。默认也没有广告。如果你在管理面板里开启了接收公告,收到广告性质的消息时,会标明“广告”再显示。
空间占用会删除文件吗?
不会。空间占用只读取。只有你在列表里亲自选中并确认的文件才会进回收站,而且可以从回收站还原。网络驱动器或 U 盘等可移动驱动器上的文件、比回收站还大的文件这类进不了回收站的,不会发送,而是提示你。
整理完不满意怎么办?
点[撤销],最近一次操作会按相反顺序还原。也可以在历史记录里挑一次旧操作来撤销。如果原位置又出现了同名文件,那一项会被跳过而不是覆盖,并且会告诉你哪些被跳过、为什么。
已经整理过的文件夹会被反复整理吗?
OmniSort 建的文件夹会留下标记,下次扫描自动跳过。已经在正确位置的文件也不会再进候选。
文件被占用或没有权限怎么办?
只把那一项记为失败,其余继续。失败原因在记录里能看到,失败的文件仍在原处。
需要安装吗?
下载一个 OmniSort.exe 直接运行就行。不用管理员权限,也不写注册表。想删掉时,删除 exe 和上面那个数据库文件夹即可。如果开启过定时整理,请先用 omnisort-cli schedule --uninstall 删掉任务计划程序里的登记。