起因
工作电脑是win7,经常遇到C盘被占满的情况,就会导致电脑很卡,因为不少程序的临时文件是存在C盘,而很多软件的临时文件地址又不太可以改动。
尝试过各种方案,自带的磁盘清理不用说,但每次只能清理掉一点点,而且已经把很多常用应用软件的存储地址迁移到C盘以外。但占满情况仍会出现。网上可以找到不少第三方工具,但是一方面是公司电脑,担心这些工具存在安全隐患,另一方面,如果任由工具删除一些C盘文件导致一些应用程序或者系统不可用,那又是另一种灾难
几经思索,C盘问题归根到底是一个问题。就是不知道什么文件占用了空间。只要知道了是什么文件,就可以去网上查找,确认和了解这些文件能不能删除,对系统会有何种影响。
方法
我给出的解决方案很简单,使用everything的全局排序功能。
- everything是非常好用的windows端搜索软件。everything的常规界面如下。只能看到文件名称和地址属性
2. 但实际拖动之后,还可以看到大小属性和修改日期属性,截图如下
3. 点击Size之后,会对全局的文件进行按大小的排序,size的位置会出现一个下标箭头
4. 这个过程可能时间会很长,过程中也可能弹出取消框,切忌不要点击取消,也切忌不要做其他输入,其他输入会打断排序的流程。
everything的界面看似会是没有任何响应,实际后台是在做排序处理的。这时其他操作也会出现异常卡顿的情况,因为后台在做大量计算,是正常现象。
我电脑上500G的机械硬盘,windows所占据的分区总共是230G左右(另外一些给了ubuntu系统),实际使用的大小是在167G左右,最终统计文件有678 267个,C盘使用比率为78.7/93.7。
得到最终结果的耗时在 4分30s左右 。
得到的部分结果如下:
5. 上述搜索的结果包含所有盘下的所有文件,按照从大到小排序得到的结果。可以非常清晰地看到C盘中哪个文件占了大头。如果想清理其他磁盘中的空间,也可以完全如法炮制。只是删除C盘中的文件肯定要慎重,对于每个大文件的存在意义,最好在bing或者google上查询之后,再做决断,毕竟很多人,即使是程序员,也不是windows专家。
这里我以查询到的两个大文件为例,简单根据查询到的资料做下介绍:
- pagefile.sys文件,占据8GB,是操作系统的虚拟内存文件,如果用户经常运行大型程序,建议保留,不过可以将该文件配置到其他盘,以腾出C盘的空间。具体修改内容和配置流程可参考该博客,https://blog.csdn.net/xrinosvip/article/details/81352823
- hiberfil.sys 文件,占据3.3GB,该文件是win7的休眠文件,主要是用于笔记本的休眠状态,将休眠时刻的系统内存中的所有内容经过压缩保存到该文件,等到下一次启动时,可以直接将磁盘中的所有内容装载到内存中,系统可以恢复到休眠之前一模一样的状态,包括所有的程序的打开和编辑状态,故而内存可以直接掉电,至于该文件的大小,与当前使用的系统内存大小是成正比的。如果只是到睡眠状态,内存仍然是上电的,故而休眠状态对增强笔记本的续航更有帮助。我个人在台式机上使用,自觉休眠意义不大,就使用如下命令,关闭了该休眠模式,自然hiberfil.sys文件也就被清除了。
powercfg -h off
总结
具体是什么文件占空间,每个人的电脑情况可能都会有所不同,这里就不一一列举,但个人认为这种方法确实提供了一种通用的C盘清理解决方案,毕竟每个人的C盘被占满的原因经常是不同的,搜索到的各种针对性方法也都不太使用,而我也一直饱受win7下C盘清理之苦,故而特此记录。