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

12 windows winapi hard-drive

如何在Windows操作系统上找到主硬盘的驱动程序字母?

也就是说,驱动器有Program Files,System32等等.

pax*_*blo 24

有一个环境变量被调用SystemDrive,它被设置为系统驱动器(令人惊讶的是足够).该getenv()呼叫是你可以得到它.

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

如果您不能依赖系统驱动器上存在的特定目录,此页面列出了一大堆可用的环境变量.

或者,使用Windows API调用SHGetSpecialFolderPath(),并传入正确的CSIDL.那么你不应该依赖环境变量.

虽然请注意那些已经被Vista中的其他功能取代的页面(它应该仍然有效,因为这个功能成为新功能的包装器).


ojb*_*ass 5

API 调用GetWindowsDirectory可能会有所帮助。您可以使用 API 进一步解析此信息以解析驱动器号信息。