ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

disktree Windows 使用指南:NTFS 磁盘占用统计原理与系统目录保护机制深度解析

disktree Windows 使用指南:NTFS 磁盘占用统计原理与系统目录保护机制深度解析 disktree Windows 使用指南NTFS 磁盘占用统计原理与系统目录保护机制深度解析【免费下载链接】disktreeA treemap for finding and removing what fills your disk, for Omarchy. Rust GPUI.项目地址: https://gitcode.com/gh_mirrors/di/disktreedisktree 是一款用 Rust GPUI 编写的 treemap 磁盘分析工具能一眼看出什么文件占满了你的硬盘。本文面向 Windows 用户讲解 disktree 在 Windows 10/11 上的一键安装步骤、NTFS 磁盘占用统计原理以及它内置的系统目录保护机制——让你安全地清理 C 盘又绝不会误删系统文件。一键安装disktree Windows 版怎么装 从最新 release 下载对应压缩包即可无需安装任何依赖系统压缩包Windows 10/11x86_64disktree-*-x86_64-windows.zipWindows on ARMdisktree-*-aarch64-windows.zip解压到任意目录双击运行disktree.exe即可开始扫描。如果你更喜欢从源码构建需要 Rust 1.97 和 MSVC 工具链Visual Studio Build Tools 的 C 工作负载克隆仓库https://gitcode.com/gh_mirrors/di/disktree后执行cargo build --release # 产物在 target\release\disktree.exe上手操作查看、标记、清理磁盘空间disktree 默认扫描你的用户主目录。想扫整个 C 盘按g键或点击顶部面包屑中的/即盘符或直接用--disk参数启动。缩放深入滚轮朝鼠标位置放大放满后继续滚动即进入该目录Enter进入选中目录Backspace/Esc返回上一级标记删除Space或X标记鼠标下的图块标记的图块会变为警示色按C打开复核清单执行删除在复核界面选择Move to trash默认进回收站可恢复或Delete permanently彻底删除每次都会先弹出确认对话框明确写出删什么、能腾出多少空间删除完成后 disktree 会自动重新扫描屏幕上的数字与磁盘实际状态保持一致并显示实际释放了多少空间。常用快捷键/按名称过滤、r重新扫描、o在文件资源管理器中显示、?查看全部快捷键。NTFS 统计原理为什么 disktree 的数字和文件资源管理器不一样 这是理解 Windows 磁盘占用的关键——文件大小不等于磁盘占用。按簇分配而不是按字节NTFS 以簇cluster为最小分配单位。一个 100 KB 的文件如果簇大小是 4 KB实际会占用 104 KB。disktree 默认统计的就是这个分配大小allocation size它和删掉文件能腾出的空间完全一致而资源管理器属性里显示的大小只是表观长度apparent size。特殊情况下分配量还会小于表观大小压缩/稀疏文件NTFS 压缩后实际占用更少极小文件小到能直接存在 MFT 文件记录里的文件数据区占用为 0这些数字是怎么来的disktree 并不逐个文件去查询——那在 130 万个文件的主目录上会慢 7 倍。它调用 Win32 的GetFileInformationByHandleEx以FileIdExtdDirectoryInfo信息类一次取回整个缓冲区的目录条目分配大小、文件 ID、修改时间随目录列表一起到达几乎零额外开销。实现见 windows.rs。硬链接只计一次NTFS 允许两个文件名指向同一块数据硬链接。disktree 用卷序列号 128 位文件 ID识别这种关系同一数据无论有多少个名字只计一次——否则总量会虚高。隐藏文件 两种定义Windows 上隐藏包括以点开头的名称或带有 hidden 属性的目录。所以按i切换隐藏项时资源管理器隐藏AppData的那个隐藏属性也会被识别-H参数则会把AppData一并跳过。挂载文件夹视为链接Windows 允许把一个卷挂载到某个文件夹上mounted folderdisktree 将其与 junction 一样视为链接扫描时不进入保证一次扫描停留在一个卷内加-l参数才会跟随。系统目录保护机制深度解析删什么、不删什么️ 磁盘工具最大的风险是误删。disktree 的删除规则全部实现在 removal.rs 中且每一条都有测试覆盖。在 Windows 上以下路径会被直接拒绝删除即使你有权限保护对象原因C:\WindowsSystemRoot操作系统本体Program Files、Program Files (x86)、ProgramW6432已安装的程序ProgramData程序的全局数据System Volume Information系统还原点Recovery、Boot、bootmgr恢复与引导pagefile.sys、hiberfil.sys、swapfile.sys虚拟内存/休眠文件应在设置中关闭而不是手删$Recycle.Bin、C:\Users回收站与用户档案容器路径比较像 Windows 一样忽略大小写Windows 路径不区分大小写\\?\C:\前缀也指向同一位置。保护规则因此采用折叠后比较c:\WINDOWS\System32会被正确识别为在C:\Windows之内任何换个写法想绕过保护的路径都会被拦截。防 Win32 名称误读Win32 API 会把C:\Users.读成C:\Users尾随点被剥离把任意目录下的NUL、COM1读成设备名。NTFS 可以存储这样的名字而删除时走的是 Win32 通道——所以这类名字在 Windows 上被直接拒绝删除。其他跨平台安全规则同样生效只有扫描根目录之内的路径可被删除文件系统根、扫描根、用户主目录一律拒绝拒绝进入挂载点防止删除穿透到另一个卷符号链接只删链接本身绝不跟随路径从不经过 shell 传递叫-rf的文件也只是个文件系统目录被拒时界面会告诉你正确的处理方式用设置Settings或程序自带的卸载器。Windows 上的几个差异点回收站Move to trash 走系统 Shell API就是资源管理器用的同一个回收站遇到无法回收的项会先询问绝不直接销毁主题跟随 Windows 的浅色/深色设置自动切换macOS 和 Linux 上则跟随桌面环境整盘扫描扫的是主目录所在的盘通常是C:\跨卷的挂载文件夹不会进入云端占位文件OneDrive 等只存在于云端的目录不会被打开扫描不会触发下载常见问题Q统计结果比du或资源管理器大/小disktree 统计的是真实分配量含簇对齐这是删除文件后实际能拿回的空间而不是表观大小。按d可切换为表观大小对照。Q为什么总量可能超过删除后腾出的空间克隆文件/硬链接共享的数据块在各自名字下都会显示完整大小但删除一个名字并不释放共享块——统计时已按文件 ID 去重一次总量不会重复计算。Q扫描慢Windows 版目录列表是批量读取的64 KiB 缓冲一次取回数百条目扫描 130 万文件的主目录通常也只需数秒。相关文件导航windows.rsWindows 目录枚举、分配大小读取、卷与挂载点removal.rs删除计划、系统目录保护规则、回收站后端scan.rs并行扫描与树构建README.md完整使用手册与快捷键表【免费下载链接】disktreeA treemap for finding and removing what fills your disk, for Omarchy. Rust GPUI.项目地址: https://gitcode.com/gh_mirrors/di/disktree创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表