为何单独设计一个获取系统目录的GetSystemDirectory函数?

2026-05-29 10:123阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计764个文字,预计阅读时间需要4分钟。

为何单独设计一个获取系统目录的GetSystemDirectory函数?

大多数人可能认为,系统目录永远都是固定的,即%windir%\SYSTEM32。为什么Windows要设计一个单独的函数GetSystemDirectory呢?这并非没有道理。

由于历史原因,系统目录的位置可能会变化。设计GetSystemDirectory函数可以提供一种灵活的方式来获取当前系统目录的路径,而不是硬编码在一个固定的字符串中。这样做的好处包括:

1. 灵活性:如果未来系统目录的位置需要改变,只需修改GetSystemDirectory函数的实现,而不需要修改使用该路径的代码。

2.可维护性:减少硬编码,使得代码更易于维护和理解。

3.兼容性:在系统升级或迁移时,可以确保应用程序能够正确地找到系统目录。

因此,GetSystemDirectory函数的存在是为了应对可能的系统目录位置变化,确保系统的稳定性和兼容性。

为何单独设计一个获取系统目录的GetSystemDirectory函数?


大多数人可能会认为,系统目录永远都是恒定的,即%windir%\SYSTEM32。为什么Windows要设计一个单独的函数GetSystemDirectory呢?是不是有点多此一举了?

非也非也。由于历史原因,系统目录有时候会变化。

对于16位的Windows NT操作系统,系统目录为%windir%\SYSTEM。对于基于Windows95和所有其他的16位操作系统,系统目录也是%windir%\SYSTEM。

即使是在16位操作系统的世界,如果系统目录始终是%windir%\SYSTEM,为什么还是需要一个函数来返回呢?

皇上别急,请听老臣解释。

同上的道理,即使是16位的操作系统,系统目录也不是一成不变的。
在16位系统的古老时代,你可以直接在网络硬盘上运行Windows。所有的系统文件会被保留在网络服务器上,只有用户文件才会被保留在本地机器中。另外,网络上的每一台电脑都使用相同的网络路径作为系统目录的路径。那个时候,只有一个USER.EXE的拷贝被所有用户共享。

在这种基于网络的Windows配置下,系统目录是共享网络磁盘的一个路径,而Windows目录是本机硬盘的一个路径,例如C:\Windows。客户没有对网络共享盘的写入权限,但是他们对本机Windows目录却有写入权限。

这就是为什么我们设计了一个单独的GetSystemDirectory函数来返回系统目录。

总结

奇怪的小知识是不是又增加了?

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《Why is there a separate GetSystemDirectory function?》

最近我写了个东西

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

本文共计764个文字,预计阅读时间需要4分钟。

为何单独设计一个获取系统目录的GetSystemDirectory函数?

大多数人可能认为,系统目录永远都是固定的,即%windir%\SYSTEM32。为什么Windows要设计一个单独的函数GetSystemDirectory呢?这并非没有道理。

由于历史原因,系统目录的位置可能会变化。设计GetSystemDirectory函数可以提供一种灵活的方式来获取当前系统目录的路径,而不是硬编码在一个固定的字符串中。这样做的好处包括:

1. 灵活性:如果未来系统目录的位置需要改变,只需修改GetSystemDirectory函数的实现,而不需要修改使用该路径的代码。

2.可维护性:减少硬编码,使得代码更易于维护和理解。

3.兼容性:在系统升级或迁移时,可以确保应用程序能够正确地找到系统目录。

因此,GetSystemDirectory函数的存在是为了应对可能的系统目录位置变化,确保系统的稳定性和兼容性。

为何单独设计一个获取系统目录的GetSystemDirectory函数?


大多数人可能会认为,系统目录永远都是恒定的,即%windir%\SYSTEM32。为什么Windows要设计一个单独的函数GetSystemDirectory呢?是不是有点多此一举了?

非也非也。由于历史原因,系统目录有时候会变化。

对于16位的Windows NT操作系统,系统目录为%windir%\SYSTEM。对于基于Windows95和所有其他的16位操作系统,系统目录也是%windir%\SYSTEM。

即使是在16位操作系统的世界,如果系统目录始终是%windir%\SYSTEM,为什么还是需要一个函数来返回呢?

皇上别急,请听老臣解释。

同上的道理,即使是16位的操作系统,系统目录也不是一成不变的。
在16位系统的古老时代,你可以直接在网络硬盘上运行Windows。所有的系统文件会被保留在网络服务器上,只有用户文件才会被保留在本地机器中。另外,网络上的每一台电脑都使用相同的网络路径作为系统目录的路径。那个时候,只有一个USER.EXE的拷贝被所有用户共享。

在这种基于网络的Windows配置下,系统目录是共享网络磁盘的一个路径,而Windows目录是本机硬盘的一个路径,例如C:\Windows。客户没有对网络共享盘的写入权限,但是他们对本机Windows目录却有写入权限。

这就是为什么我们设计了一个单独的GetSystemDirectory函数来返回系统目录。

总结

奇怪的小知识是不是又增加了?

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《Why is there a separate GetSystemDirectory function?》

最近我写了个东西

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