我如何获得系统驱动器号?

如何在Windows操作系统上找到主硬盘的驱动程序字母?
即具有Program FilesSystem32等的驱动器。


最佳答案:

有一个名为SystemDrive的环境变量被设置为系统驱动器(令人惊讶的是)。您可以通过getenv()呼叫进行访问。

char *sysDrive = getenv ("SystemDrive");
if (sysDrive == NULL) {
    // vote me down.
} else {
    // vote me up and use it.
}

This page列出了大量可用的环境变量,如果您不能依赖系统驱动器上存在的特定目录。
或者,使用windows api调用SHGetSpecialFolderPath(),并传入正确的CSIDL。那你就不必依赖环境变量了。
尽管在这些页面上要注意,这已经被vista中的其他函数所取代(由于这个函数成为新函数的包装器,所以它应该仍然可以工作)。