• 请不要在回答技术问题时复制粘贴 AI 生成的内容
x500
V2EX  ›  程序员

发现 Win10/7 一个资深 bug, 0day bug?

  •  
  •   x500 · Apr 16, 2021 · 4393 views
    This topic created in 2027 days ago, the information mentioned may be changed or developed.

    我有几个外置磁盘,有个目录,100 多 G,几万个文件,不论在 win10/win7 下删除都只是显示出删除框一阵子后,然后就自动消失了,根本不能删除一个文件。 分析:里面是递归调用,形成要操作列表缓存区,结果缓存区溢出,它就一脸蒙比的爬着走了。

    bclerdx
    bclerdx
    Apr 16, 2021 via Android
    1
    那就向微软提交 bug 反馈。
    kokutou
    kokutou
    Apr 16, 2021 via Android
    2
    chkdsk 一下分区吧,盲猜有错误
    crclz
    crclz
    Apr 16, 2021
    3
    你要看是什么层面的 0day bug 。如果是文件系统管理代码的 bug,那么就可能是核弹。如果只是资源管理器的,就只是影响体验的 bug 。
    superrichman
    superrichman
    Apr 16, 2021 via iPhone
    4
    确定不是你的硬盘坏了?
    manus
    manus
    Apr 16, 2021
    5
    win10 往 OneDrive 目录解压了一份 switch 开发的项目的源码,删除的时候会剩下一堆占用为 0 的文件,再次删除系统就会重启,目前这个文件夹存在我电脑很久了每次一删点删除就重启,100%复现。
    FlyingShark
    FlyingShark
    Apr 16, 2021
    6
    MFT 坏了?修复下文件系统
    jasonyang9
    jasonyang9
    Apr 16, 2021
    7
    有意思。日志里没任何相关内容?
    totoro625
    totoro625
    Apr 16, 2021
    8
    遇到过一次移动硬盘的回收站爆炸,分享你一下:
    用 DiskGenius 看一下硬盘分区的 recycle.bin 是否文件较多,可以手动清空一下
    这里的回收站只有在对应删除时用的电脑上才能出现在 Windows 的回收站里
    gitdoit
    gitdoit
    Apr 16, 2021❤️1
    9
    之前用 HBuilder 不知道怎么弄的,文件夹建了 n 多层,然后就删不掉了
    x500
    x500
    OP
    Apr 16, 2021
    10
    硬盘没坏,可以创建和删除文件夹,其它小目录也可以正常操作。
    whileFalse
    whileFalse
    Apr 16, 2021
    11
    Windows 有个 BUG 是如果文件路径过深(我记得是路径超过 128 还是 256 个字符),会无法删除。可以尝试把深层文件夹移动到磁盘根目录,以减少路径深度。
    domodomo
    domodomo
    Apr 16, 2021
    12
    噢,这个问题我遇到过,跟你的很像,几万个文件吧,删除非常的缓慢,最后提示无法删除。怎么都删不掉,最后用命令行删除才解决掉。
    所以应该是用户界面程序有 bug,怀疑是对要删除的文件数量进行统计用来计算进度条?结果缓存太小溢出了?要不就是哪里内存泄露后重复了几万次后把自己搞崩溃了?

    不过也有可能是你的(机械)硬盘有坏道……
    no1xsyzy
    no1xsyzy
    Apr 16, 2021❤️2
    13
    bug 一般是不称 0day 的…… 漏洞才会这么说
    路径字符串长度超过 260 ( MAX_PATH ) 了?试下用 7z File Manager 去删,7zFM 对

    https://stackoverflow.com/a/1880453/6202760
    https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation

    后来版本的 Windows 可以手动提升这个数值,但必须是程序自己的代码,以确保程序本身对此 aware (以防某些程序申请了恰好 260 内存来存储路径,会导致缓冲区溢出。)

    @whileFalse MAX_PATH=260,据说多的 4 个是 盘符、':'、'\'、和最后的 NULL Terminator
    admol
    admol
    Apr 16, 2021
    14
    遇到过无法删除文件夹, 只要再重命名下文件夹就自己删除消失了
    x500
    x500
    OP
    Apr 16, 2021
    15
    刚才又检查磁盘,告诉我磁盘没问题,我让它强制检查一遍后,再删除,也是一样:先显示有多少文件空间要删除,过一会儿,界面上啥都没有,那文件夹还在。
    no1xsyzy
    no1xsyzy
    Apr 16, 2021
    16
    不过试了下似乎在 explorer.exe 中删除操作并不受 260 影响,无论是彻底删除还是回收站
    Mithril
    Mithril
    Apr 16, 2021
    17
    Explorer 那个删除文件夹会提前遍历一次所有文件,这个过程相当的慢。
    如果你的文件特别多,直接用命令行或者换个文件管理器删吧。
    q197
    q197
    Apr 16, 2021
    18
    @kuzhan onedrive 里放的文件如果名字太长还会造成无法同步那个文件的 bug 。你的情况网页端删了试试?
    Jf35jxN3fwBXyeLh
    Jf35jxN3fwBXyeLh
    Apr 16, 2021
    19
    你的磁盘有坏道吧
    jeeyong
    jeeyong
    Apr 16, 2021
    20
    win7 为止, 好像都有这个 BUG...
    不确定多少个文件, 单个文件夹内文件数量超过多少就会出现异常
    记得以前出过补丁..
    wusheng0
    wusheng0
    Apr 16, 2021 via Android
    22
    0day 的话可以换奖金了
    manus
    manus
    Apr 16, 2021
    23
    @q197 没用 我的网页端已经删除不存在这个文件夹了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5053 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 01:39 · PVG 09:39 · LAX 17:39 · JFK 20:39
    ♥ Do have faith in what you're doing.