如何在Windows操作系统上find主硬盘的驱动器号?
也就是,带有Program Files
, System32
的驱动器。
有一个名为SystemDrive
的环境变量被设置为系统驱动器(足够令人惊讶)。 getenv()
调用是你如何去做到的。
char *sysDrive = getenv ("SystemDrive"); if (sysDrive == NULL) { // vote me down. } else { // vote me up and use it. }
如果您不能依赖系统驱动器上存在的特定目录,则此页面会列出所有可用的环境变量。
或者,使用Windows API调用SHGetSpecialFolderPath() ,并传入正确的CSIDL 。 那么你不应该依赖于环境变量。
尽管在那些已经被Vista中的其他函数取代的页面上注意到了(它应该仍然可以工作,因为这个函数成为了新函数的一个包装)。
API调用GetWindowsDirectory可能会有所帮助。 您可以使用API进一步解析此信息以分析驱动器号信息。
SYSTEMDRIVE
PROGRAMFILES
SYSTEMROOT
WINDIR
不要假设程序文件与Windows在同一个驱动器上。 通常是这样。 通常。
切勿像上面的错误答案那样使用env变量。
env变量可由用户更新。