如果文件夹名称和程序重复了,系统如何处理

如果文件夹名称和程序重复了,系统如何处理

作者:BlogUpdater |  时间:2021-12-26 |  浏览:1650 |  评论已关闭 条评论

我们假设这样一种情况。
你有一个文件夹,比如C:\Folder,然后,同时你还有一个程序,名为C:\Folder.exe。如果你在命令行窗口输入: C:\Folder,这个时候会发生什么?

外壳会执行名为Folder.exe的应用程序,而不是打开Folder文件夹。

为什么这样设计?
因为下面的情况很常见,例如:

其中,在安装程序的根目录有一个程序setup.exe,然后同时还有一个setup的文件夹,里面包含了安装过程中需要的各种文件。

在Windows 95之前,你不能通过输入文件夹的名称打开一个文件夹(如果你想在资源管理器中打开它,则你需要使用指定的命令打开资源管理器并设置好参数)。
结果就是,为那些早期Windows版本编写的程序可能会有如下一些行为:
> 打开名为”Setup”的软盘驱动器(那个时候,CD驱动器是富家子弟才能玩的玩意儿)。
> 从应用程序管理器中,点击文件,然后选择执行。
> 在弹出的对话框中,输入”A:\SETUP”,然后点击回车。

因为那个时候,压根还没有类似于”打开一个文件夹”的功能,所以唯一的方式就是执行程序A:\SETUP.EXE。

Windows 95设计为在同名的情况下,应用程序优先于文件夹,这样上面的行为就继续保持有效(开始菜单按钮替换了上面说的文件菜单)。

然后发生的事情就是,每一个版本的Windows都会以程序作为优先,这就创造了一个潜在的环境,开发者需要依赖这个优先行为特性来编写他们自己的安装程序代码。一代代传下去之后,就不断加强了这种行为模式。

但是,如果用户真的是想打开文件夹,而不是执行程序呢?

有办法,只需要在路径的结尾添加一个反斜杠(\)就可以了,例如:(A:\SETUP\)就可以打开SETU文件夹了。

总结
小技巧已GET,小故事也挺不错。
不枉费我这生命中宝贵的五分钟。

最后
Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《If a program and a folder have the same name, the shell prefers the program》

最近我写了个东西
正如你们所知道的,拓扑梅尔智慧办公平台(Topomel Box)是一款绿色软件,主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能,同时操作上尽可能地简单方便。
我想:你值得拥有。

标签:

相关推荐

评论已关闭。