检索系统驱动器的最安全方法是什么
我知道以下内容应该有效:
Environment.GetEnvironmentVariable("windir", EnvironmentVariableTarget.Machine)
我对这个调用的问题是,如果由于某种原因有人决定删除“windir”Env Var,这将不起作用。
有没有更安全的方法来获取系统驱动器?
I know that the following should work:
Environment.GetEnvironmentVariable("windir", EnvironmentVariableTarget.Machine)
My problem with this call is that if for some reason someone decided to remove the "windir" Env Var , this won't work.
Is there an even more secure way to get the System drive?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
注意:此属性在内部使用 GetSystemDirectory() Win32 API。 它不依赖于环境变量。
Note: This property internally uses the GetSystemDirectory() Win32 API. It doesn't rely on environment variables.
该命令返回系统目录 (system32) 的路径。
你也许可以使用它,那么你就不需要依赖环境变量了。
This one returns the path to the system directory (system32).
You may be able to use that, then you don't need to rely on environment variables.
我实际上可能误解的一件事是您想要系统驱动器,但通过使用“windir”您将获得 windows 文件夹。 因此,如果您需要一种安全的方式来获取 Windows 文件夹,您应该使用古老的 API 函数 GetWindowsDirectory。
这是为 C# 使用准备的函数。 ;-)
因此,如果您确实需要运行 Windows 的驱动器,您可以随后调用
One thing i actually maybe misunderstand is that you want the System Drive, but by using "windir" you'll get the windows folder. So if you need a secure way to get the windows folder, you should use the good old API function GetWindowsDirectory.
Here is the function prepared for C# usage. ;-)
So if you really need the drive on which windows is running, you could afterwards call
您可以使用 GetWindowsDirectory API 来检索 windows 目录。
You can use the GetWindowsDirectory API to retrieve the windows directory.
切勿读取环境变量(任何脚本或用户都可以更改它们!)
官方方法(MS内部,Explorer使用)是几十年来的Win32 api常见问题解答(请参阅Google组,Win32,系统api)
Never read environment variables (any script or user can change them !)
The official method (MS internal, used by Explorer) is a Win32 api FAQ for decades (see Google groups, Win32, System api)
有一个名为 SystemDrive 的环境变量
Theres an environment variable called
SystemDrive