假设路径C: WINDOWS system32始终存在是否安全?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了假设路径C: WINDOWS system32始终存在是否安全?相关的知识,希望对你有一定的参考价值。

在win 2000或更高版本(任何语言)的操作系统上,我可以假设此路径将始终存在吗?例如,我知道在某些语言的win xp中,“Program Files”目录具有不同的名称。那么System32文件夹是真的吗?

谢谢。辖。

答案

您绝对不能假设:Windows可以安装在不同的驱动器号上,也可以安装在不同的目录中。例如,在以前的工作PC上,Windows安装在D: WINNT中。

简短的回答是使用API​​调用GetSystemDirectory(),它将返回您之后的路径。

更长的答案是问:你真的需要知道这个吗?如果您正在使用它将文件复制到Windows目录中,我建议您询问是否确实要这样做。不鼓励复制到Windows目录,因为您可以非常轻松地搞乱其他应用程序。如果您正在使用路径查找DLL,为什么不依靠操作系统找到合适的路径而不提供路径?如果您正在挖掘操作系统文件的部分内容,请考虑:将来是否可以使用?一般来说,如果您希望程序在未来的Windows版本上运行,最好不要在Windows目录中明确地浏览。

另一答案

不,你不能这么认为。

Windows可以安装到不同的路径。一种解决方案是通过调用GetSystemDirectory(作为Windows API的一部分实现)来查找它。

另一答案

Windows可以安装在不同的硬盘驱动器上,也可以安装在不同的文件夹中。使用%windir%或%systemroot%环境变量可以转到Windows文件夹并附加system32。或者使用%path%变量,它通常是第一个入口和搜索dlls AFAIK等文件的首选方法。根据评论:不要太依赖system32 dir作为第一项。我认为可以安全地假设它在某个地方的%path%。

另一答案

我将使用GetWindowsDirectory Win32 API获取当前的Windows目录,将System32附加到它,然后检查它是否存在。

另一答案

使用“windir”环境变量然后将“System32”附加到该路径的末尾可能更安全。有时窗口可能位于不同的文件夹或不同的驱动器下,因此“windir”会告诉您它在哪里。

据我所知,system32文件夹应该始终存在于windows文件夹下。

另一答案

只是一个FYI,但在终端服务器环境(即Citrix)中,GetWindowsDirectory()可能会为远程用户返回一个唯一的路径。

link text

随着越来越多的公司使用虚拟化桌面,开发人员需要牢记这一点。

以上是关于假设路径C: WINDOWS system32始终存在是否安全?的主要内容,如果未能解决你的问题,请参考以下文章

绝对路径和相对路径

在 Windows 8.1 上为 CMD 设置系统路径:尝试覆盖 Windows/System32/find.exe

绝对路径与相对路径的辨别

路径+DataRow+SqlPara防止sql注入

WiFi共享设置

想把cmd打开之后的默认地址C:Users\Administrator>改成C:\windows\system32>?求助一下?