在 win 2000 或更高版本(任何语言)的操作系统上,我可以假设这条路径将始终存在吗?例如,我知道在某些语言的 win xp 上,“程序文件”目录具有不同的名称。System32 文件夹也是如此吗?
谢谢。哦哈德。
在 win 2000 或更高版本(任何语言)的操作系统上,我可以假设这条路径将始终存在吗?例如,我知道在某些语言的 win xp 上,“程序文件”目录具有不同的名称。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 目录作为第一项。我确实认为可以安全地假设它在某个地方的 %path% 中。
我会使用GetWindowsDirectory Win32 API 来获取当前的 Windows 目录,将System32附加到它,然后检查它是否存在。
使用“windir”环境变量然后将“System32”附加到该路径的末尾可能会更安全。有时windows可能在不同的文件夹或不同的驱动器下,所以“windir”会告诉你它在哪里。
据我所知,system32 文件夹应该始终存在于 windows 文件夹下。