补充:试验了一下,move命令会出问题,用copy命令吧。
-----------
花了一小会儿时间,将这个专业词汇解释清楚,颜玉继续追问了起来:“毅哥哥,你的意思是说这个不能删除的文件夹是一个bug?为什么要在dos下面才能删除呀?”
……许毅顿时没词了,为什么会这样我怎么知道,我又没阅读过微软操作系统的源代码,他无奈地回道:“我也只知道这是个bug。具体原因不清楚。”
“你也不知道呀。”小姑娘好像感到很惊讶,可能她没想到还有许毅不知道的计算机问题。她继续问:“对了,你还没告诉我为什么要多加一个点和反斜杠呢。”
这个许毅倒知道:“其实你建立的这个文件夹的名字本来就是多了一个点和反斜杠的。只不过这样看不到而已。”
颜玉自然是不信,许毅只得证明给她看。他要颜玉用命令“mkdira\\”在dos控制台下建立文件,也就是说,按照dos命令的语法规则,建立的文件名为“a\\”。
等了一会儿,颜玉便发来了消息:“毅哥哥,怎么建立的文件名是‘a.’,少了一个点和一个反斜杠呢,太奇怪了!”
许毅回道:“呵呵,刚才那个文件夹就是这个原因,它实际的文件夹名字和你看到的并不一样。你现在用平常的方式删除这个文件夹试试。”
颜玉闻言,选择了这个文件夹,然后按了删除键,确认,这时,她惊讶地发现刚才碰到的问题又出现了,也就是说刚才自己亲手建立了一个不能删除的文件夹。
这样说,那个文件也是我不小心给建立的了?颜玉想到这里,心中一动,按照刚才删除那个文件夹的方法,在dos里面运行了“rmdira\\”命令,发现刚建立的文件夹果然立刻被删除了。
真是这样的!颜玉高兴非常。这个困扰了她多时的问题原来是这么回事,害得她还担心了好一阵,以为是遭了黑客呢。
许毅坐在电脑前,疲劳感一阵又一阵地袭来,不过他也被小姑娘引起了兴致,决定趁热打铁,将这个小技巧跟她说清楚,好增长她学技术的兴趣。
于是,许毅便开始详细地给她讲解起这个原因来。虽然他并没有阅读windows操作系统的源代码,但是根据自己掌握的知识,他还是可以将其中的原因推测出七八分的。
反斜杠“\\”在windows中是路径的分隔符号比如“dows\\”的意思就是dows文件夹,“d.exe”的意思就是d.exe文件。
那么,如果文件名中有“\\”符号会怎么样呢?假如“a\\”是一个文件的名字,这个文件位于“d:\”(d盘),则它的路径就是“d:\a\”,当我们试图访问这个文件的时候windows会错误地认为我们要打开的文件是d分区的a文件夹,这样windows就无法打开并且会返回一个错误,因为以上的路径并不存在。
当然现在正在尝试创建“a\”文件,但是windows会给出提示:“\\”符号是不能作为文件或者文件夹的名字的。也就是说windows还是早已想到这一点了的。不过事实真的是这样吗?显然是否定的。
颜玉碰到的这个文件夹就是如此,也就是说,微软的程序员编写操作系统的时候把dos下用mkdir命令建立文件的时候忽略了这个问题,仅仅只是注意到了图形化界面中文件的建立。
花了好大一阵精神,许毅终于将这个问题说清楚了,从小姑娘的回复来看,她好像也听懂了其中的原理。她对于自己发现了微软的一个“重要”bug欢呼不已,不过欢呼之后,她终于想起一件重要的事情:“毅哥哥,这个bug就算是存在也没什么关系吧,这个问题毕竟是很少会遇到的,而且看上去并没有什么作用。”
“当然有作用了,有重要作用。黑客的一个重要能力之一就是能够利用看上去貌似毫不起眼的小漏洞做出令人惊讶的事情来。”
“啊?这个bug还能被黑客利用吗?”
“当然。”我就经常用,哈哈哈。
“那快告诉我,怎么用啊?这可是我发现的漏洞呢。”
喷!赞她几句就飘飘然了。许毅连忙及时提醒她,这个漏洞不能透露出去,要是流传开来,大家都知道了,以后就不灵了。
“好啦,好啦,我不会告诉别人的。你也不准,这个是我们两个之间的秘密。毅哥哥,你快告诉我这个bug到底有什么用吧。”颜玉满口答应,连连催促。
“呵呵,其实这个文件夹也是一个真正的文件夹的,它具有文件夹的功能,但又具有其他一些特性,不容易删除就是其中之一。”
“文件夹的功能?你是说我们可以在里面存放其他文件?”