为什么要直接将程序安装到C:/中?


14

是什么原因导致某些程序直接(默认或什至要求)直接安装在C:/中而不是像大多数情况下那样安装在C:/ Program Files /文件夹中的原因?

另外,为什么在这里解压缩驱动程序如此普遍?我已经在C:-驱动器中看到了许多Intel,Nvidia,ATI和Xerox文件夹,尽管对我而言,在那里默认设置,不在桌面或其他特定于用户的文件夹中设置默认值是没有意义的。不应在系统范围内要求这些文件,因为它们只是临时的。

谢谢!

编辑:这个问题不是关于特定软件的,而是与常规方法不同的原因。我认为这可能与应该保持运行的服务器有关,但这只是毫无预见的预感,为什么服务器程序不应该从C:/ Program Files /运行,只要所有权限被设置。对于可能在系统范围内所需的文件(例如驱动程序安装文件),该操作相同。

显然,这仅与Windows有关。


6
软件安装是开发周期的重要组成部分,如果有特殊原因,有人会将其部署到Program Files之外的区域,这无疑是开发人员可能想知道的。因此,我通常会在主题上进行说明。
2013年

我认为MS-DOS应用程序已将自身安装到C:\中,但Windows 10当然不是MS-DOS。
juniorRubyist,

Answers:


11

没有真正的技术理由直接在c:\的文件夹中安装某些内容或在c:中解压缩驱动程序。
它甚至违反了Microsoft发布的Windows软件设计指南。

但是:
如果需要指导用户手动运行该文件夹中的某些内容,可以方便地向用户提供简单说明。
像:打开“我的电脑”,打开C :,打开[文件夹],然后打开程序“安装程序”。
通过强制这样固定路径,所有用户可以保持一致,从而使技术支持的工作变得更加轻松。
驱动程序下载经常是这种情况。所有主要制造商似乎都这样做。

我有时在第一线服务台工作。
您将不会相信有多少用户下载,解压缩,在15分钟后才打来电话,就不记得他们将解压缩后的文件放在硬盘上的什么位置。
然后他们致电服务台或技术支持。
如果您是处理这些呼叫的人,那么您很快就会开始意识到将这些文件直接放在C:\中的逻辑。


4
此外,“ C:\ Program Files”既依赖于语言环境,又依赖于处理器体系结构(x86与x64),而“ C:\”则不受。“%ProgramFiles%”是与语言环境无关的,但是容易使半精明的用户感到困惑,他们认为这看起来并不真实,或者没有正确地显示百分号。在64位系统上,对于32位应用程序,这仍然是错误的路径。
Abstrask 2013年

1
在那种情况下,我认为将文件提取到桌面比C:\
容易。– phuclv

@phuclv并非如此,尤其是在Windows 8和更高版本中。Desktop文件夹具有非常棘手的文件系统权限(特别是在使用漫游配置文件时),可能会干扰安装程序。也可以将其重定向到其他地方(可能是网络或存储空间位置)。如果尝试从桌面运行安装程序,许多病毒扫描程序只是不信任您的安装程序。从Windows 10开始,AppLocker是另一种可能会干扰来自桌面的运行内容的东西(在许多公司中,它已设置为阻止来自桌面的运行内容)。
Tonny

7

是什么原因导致某些程序直接(默认或什至要求)直接安装在C:/中而不是像大多数情况下那样安装在C:/ Program Files /文件夹中的原因?

一些开发人员没有遵循标准约定,因为他们要么不知道,要么懒得做“正确的”事情。许多业余开发人员还将硬编码进入其软件和/或安装程序的路径,而不是查询环境(例如,%TEMP%,%APPDATA%,%PROGRAMFILES%)。

另外,为什么在这里解压缩驱动程序如此普遍?我已经在C:-驱动器中看到了许多Intel,Nvidia,ATI和Xerox文件夹,尽管对我而言,在那里默认设置,不在桌面或其他特定于用户的文件夹中设置默认值是没有意义的。不应在系统范围内要求这些文件,因为它们只是临时的。

正如Tonny所建议的那样,这部分是为了简化技术支持,但这也是为了您自己的方便。将驱动程序文件提取到易于找到并可供所有用户访问的位置时,如果您需要重新安装驱动程序,则系统也很容易再次找到文件。不幸的是,大多数供应商不会清理旧文件,因此您最终将获得千兆字节的旧驱动程序包,这些驱动程序包将不再使用。在某些情况下,将它们提取到%TEMP%或“所有用户”帐户可能更合适,而某些供应商正是这样做的。


2

尽管“大多数”软件和配置文件可以处理长目录路径,大写字母,空格和“非标准”字符,但它们并非总是如此,因此在工作流程中进行此操作可能会有些麻烦。

Microsoft将Users文件夹移至Vista和7的根目录,可能很好地表明了实际上有多少人喜欢根目录(默认为“ c:”)。


1

空间。原因是空格

中有一个空格C:/Program Files。如果按原样将其放入shell命令,它将被解释为两个单独的参数。C:/ProgramFiles。这是当然的,很容易解决,只需引用它,"C:/Program Files"或者C:/Program\ Files,但是,有些程序设法搞砸。要变通解决此问题,或使懒惰的脚本编写者更容易,有时会C:直接将程序安装到该程序中。

请注意,即使程序开发人员勤奋工作并正确地转义了所有文件路径,链中某处的某些库或某些外部脚本也可能不会。程序具有如此多的依赖关系,因此有时不使用空格比尝试让所有人参与都容易。


和东西的长度。 c:\program files太长了..可以使用制表符,但如果是参数则不能。而且其中的目录往往很长。 C:\Program Files\Microsoft Visual Studio 10.0 实际上%PATH%不能真正应付许多长目录,因为它的限制为2或4千个字符
barlop

0

您声明这仅与Windows有关,但是该软件可能会与其他操作系统移植。另外,Windows版本之间可能会有差异,例如Windows的某些翻译版本也已翻译了该文件夹名称,并且用户还可以更改位置(例如,代替我使用“ P:\”的“ C:\ Program Files”一会儿)。所有这些都可以由软件检测到,但是使用固定位置更容易。同样在驱动程序的情况下,可能有必要在操作系统无法获得该信息的时候知道文件在哪里。


0

某些较旧的程序(DOS时代,Win 3.1)在打开它们的路径中不能接受空格或“长”名称。这些天来很少见。

安装程序应该获得有关要安装到的系统的设置。这些设置应该包括“程序文件”目录的位置以及其他详细信息。合法程序打包在安装程序中,这些程序可以获取此信息,并在您更改默认程序时跟踪它们。

另一方面,驱动程序被设计为由操作系统处理(“设备管理器”->“更新驱动程序”)-如果它们位于安装程序中,则设备管理器将无法访问它们以进行安装。它们对于放置它们的位置不灵活。

在消费者层面,智能手机和平板电脑确实挑战了这些概念应成为最终用户关注的问题。


0

当某些程序存在于带有空格的路径(即“程序文件”)中时,它们会发生故障,这就是为什么将它们安装在C:的根目录下的原因。

但是,我敢打赌,许多程序员都是懒惰的,只是出于方便起见,决定将程序默认放入C:\。


0

TLDR;将其他程序可能依赖的重要程序与常规程序(例如游戏/浏览器/其他任何您安装的程序)分开。

我认为人们选择安装到C:\的另一个重要原因与他们为什么首先创建程序文件有关:以与创建Users文件夹相同的方式将程序与系统文件分开,以将用户文件与程序/系统分开文件。

因此,如果开发人员不希望用户因为不记得它的用途而卸载它(想想打包的开发项目,例如音频插件,或者整个语言,例如python / ruby​​),那么他们会将程序安装到C:\驱动器上将其包括在“系统文件”中,但出于明显的原因也没有将其放入Windows文件夹中。

我知道这是一个旧帖子,但是它没有锁定,我需要添加一些内容。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.