“硬盘空间被占用,但找不到占用的文件”的解决办法

Posted yogile

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“硬盘空间被占用,但找不到占用的文件”的解决办法相关的知识,希望对你有一定的参考价值。

前言

对于移动硬盘来说容易遇到一个问题:删除文件后,还有相同空间被占用,但是找不到占用的文件。

问题说明

实际上,这种问题如果不是有隐藏文件,一般都是用户对 硬盘操作不当造成 的。

可以看看是否犯了下面一些细节错误。

错误一

  • 删除文件时,文件默认移动到回收站,但是没有在回收站上删除,发现空间占用,但相关文件没有显示。
  • 这时在回收站执行删除文件操作即可。

错误二

  • 没有在回收站上删除,但是将移动硬盘弹出后,才将回收站上显示的文件删除。再将该硬盘插入到该电脑上,发现空间占用,但相关文件没有显示。

错误三

  • 没有在回收站上删除,但是将移动硬盘弹出后,将该硬盘插入到另一台电脑上,发现空间占用,但相关文件没有显示。

原因说明

  • 几乎所有操作系统(包括 Windows 、 Linux 等)都会使用文件系统来管理文件存储( 文件系统 - 百度百科 )。

  • 文件系统管理文件存储类似于通过链表来管理,一系列链表中有很多结点,所有文件的地址指针都保存在链表中,每个文件的地址指针都保存在链表的一个结点中,所有结点以类似树形结构的关系组成链表,所有调用文件的操作都是通过这个链表读取文件指针来访问目标文件。

  • 每个文件的结点中有一个参数标识,这个标识标志了这个文件的使用状态:

    • 被占用。(used)

      表示该地址空间 被占用 ,占用该地址空间的文件可以被资源管理器访问。

      该地址空间数据 不可 被其他文件数据覆写。

    • 可使用。(free)

      表示该地址空间 没有被占用 ,没有文件占用该地址空间,或者占用该地址空间的文件不可以被资源管理器访问。

      该地址空间数据 可以 被其他文件数据覆写。

    • 待删除。(wait)

      表示该地址空间 被占用 ,有文件占用该地址空间,但是占用该地址空间的文件不可以被资源管理器访问。

      该地址空间数据 不可 被其他文件数据覆写。

  • 将文件移入回收站就是将文件从 “被占用” 状态改变为 “待删除” 状态,将文件的文件指针移入回收站显示,但是该文件指针所指的地址空间的数据没有被移动或改变。

原因一

对应错误一。

  • 处于 “待删除” 的文件地址空间数据没有删除,没有通过该文件指针执行删除操作。

原因二

对应错误二。

  • 处于 “待删除” 的文件地址空间数据没有删除,通过该文件指针执行删除操作时,文件本身的地址空间无法被访问(例:移动硬盘弹出后,才在回收站删除)。

原因三

对应错误三。

  • 处于 “待删除” 的文件地址空间数据没有删除,将该块硬盘插入到另一台电脑上,由于该文件指针在之前那台电脑上的回收站上,无法通过文件指针访问文件(例:相关文件没有显示)。

解决办法

查看占用空间

  • 可以看到移动硬盘对应的文件系统盘符为:G 。共有 931G ,可用 340G 。

    技术图片

  • 勾选 “显示隐藏的项目” ,可以看到隐藏的项目。

    • 这时可以看到可以访问的隐藏项目。

    技术图片

  • 全选 G 盘下的所有文件,右键属性查看可用文件占用空间:475G。

    • 与可用空间相差 116G 的空间被占用。

    技术图片

  • 可以使用 Linux 子系统 ls 查看 G 盘下的目录文件。

    • 这里可以查看的原因是:Linux 系统和 Windows 系统虽然都是使用文件系统来管理文件存储,但是两者的文件系统并不一样,对于文件结点标识的提供的功能也有所不同。

    技术图片

  • 与之前在 Windows 资源管理器的看到的文件多了两个文件,多出来的这两个文件就是丢失了文件指针的被占用的地址空间:

    • $RECYCLE.BIN
    • System Volume Information

删除文件 $RECYCLE.BIN

  • 使用 Linux 子系统删除 $RECYCLE.BIN 文件时,提示没有权限。

    • 毕竟文件系统不同,哪怕是子系统,对于处于异常状态的文件也没有办法以 root 权限删除。

    技术图片

  • 在 Windows 资源管理器中:

    • 点击 “选项 -> 查看(文件夹选项页面)” ;
    • 取消勾选 “隐藏受保护的操作系统文件(推荐)” ;
    • 点击 “确定” 。

    注意:这一步在问题解决后,必须重新勾选。

    技术图片

  • 可以看到 Windows 资源管理器中 $RECYCLE.BINSystem Volume Information 文件显示出来。

    技术图片

  • $RECYCLE.BIN 文件,右键属性,可以看到该文件占用空间为:0 字节。

    技术图片

    但是如果执行删除操作,会发现系统一直在计算该文件大小:

    技术图片

  • 计算完后提示:

    • 勾选 “为所有当前项目执行此操作” ;
    • 点击 “确定”

    技术图片

  • 接下来系统会删除该文件,并显示数据。

    可以看到下方提示:剩余项目 114G 。

    与被占用的空间相差无几。

    技术图片

  • 可能会出现其他需删除文件。

    • 勾选 “为所有当前项目执行此操作” ;
    • 点击 “确定”

    技术图片

删除文件 System Volume Information

  • 同样在删除 System Volume Information 文件。

再次查看占用空间

  • 删除完成后,再次查看 G 盘可用空间,恢复正常:。

    技术图片

恢复设置

这一步必须完成,否则可能会出现更多错误。

  • 在 Windows 资源管理器中:

    • 点击 “选项 -> 查看(文件夹选项页面)” ;
    • 确认 勾选 “隐藏受保护的操作系统文件(推荐)” ;
    • 点击 “确定” 。

    技术图片

以上是关于“硬盘空间被占用,但找不到占用的文件”的解决办法的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio:libpng warning: iCCP: Not recognizing known sRGB profile that has been edited解决办法(示例代

Mybatis报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题解决办法汇总(示例代

Mybatis报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题解决办法汇总(示例代

电脑经常弹出“不支持的硬件”解决办法

电脑经常弹出“不支持的硬件”解决办法

exec: "/bin/xtensa-lx106-elf-g++": file does not exist Arduino for 8266 core 开发错误解决办法(示例代