查漏补缺(48)

IT商界

  Windows XP中删除用户的Bug

  最近一个偶然的机会,笔者在Windows XP系统下发现了一个Bug,希望能引起各位电脑Fans的注意。

  举例来说,在Windows XP下所有分区均为NTFS文件系统,有两个具有管理员权限的账户,小A的和小B的。系统安装在C盘,两人默认的桌面文件夹位于“C:\Documents and Settings\小王\桌面”和“C:\Documents and Settings\小张\桌面”下,现在两人用各自账号登录后通过剪切的方式移动“桌面”文件夹到D盘根目录下,即“D:\桌面”,此时系统自动更新注册表,进入HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders可以看到键值被更改为"Desktop"="D:\\桌面",于是小王和小张两人共享一个桌面,即两人桌面上的内容是相同的。

  此时,如果小A从控制面板的“用户账户”中删除小B的账户,但保留小B的文件(图1),就会出现“文件名或扩展名太长”的出错信息(图2)。

图1

图2

  当时笔者遇到以上情况时,以为只是一般性的程序性错误,便不假思索地按下了“确定”后再次单击“删除账户”按钮,结果又出现了“文件名或扩展名太长”的提示,只好取消操作。

  但当笔者再次回到“桌面”文件夹时,发现里面所有的文件都不翼而飞了,变成了“D:\桌面\小B\桌面\小B\桌面\小B……”这样的空嵌套文件夹,足足有79层之多。进入到第79层时,如果再想进入到下一层文件夹时,系统会提示“路径太长”而无法进入。查看该文件夹属性,显示大小为“0字节”!

  当时笔者的心里一下子凉了半截,“桌面”上有大量的文档!那可是笔者半年的工作成果啊!真让人欲哭无泪(图3)。

图3

  急忙调出恢复工具Recover 4 all Professional扫描硬盘,居然一个被删文件也没找到!狠心删了它吧,又提示“找不到指定路径”,无法删除(图4)!

图4

  只好祭出杀手锏──格盘!把未丢失文件移到E区上后,忽然闪过一个念头:何不查看一下D盘的剩余空间?结果发现可用空间被占用两百兆之多,虽说NTFS分区主文件表也占用了一定的空间,但也不该这么大呀。看来笔者的文档应该还没丢!

  回到D盘的“桌面”文件夹,点击了一百多次鼠标(79×2),又一次进入到这个文件夹的最底层,试着把最里面的文件夹剪切出来,居然成功了。看来有戏!再次进入这个剪切出来的文件夹,又是一百多次点击(手指快受不住了),文档赫然躺在里面!

  这是一个比较奇怪的Bug,一般人很难遇到。但还是让笔者虚惊了一场,后来笔者又重新试验了一下,如果你只单击一次“删除账户”按钮的话,直接进入第79层文件夹便能找到你的文件,如果你不幸像笔者一样按了两次的话,那你要找到它们可就比较费力喽!这个Bug在FAT32分区下也存在,但只生成空文件夹,并不把文件放到最里面那一层。

  线索提供者:王黎