【问题标题】:How can I get the system drive letter?如何获取系统盘符?
【发布时间】:2010-10-23 01:20:00
【问题描述】:

如何在 Windows 操作系统上找到主硬盘的驱动盘符?

即带有Program FilesSystem32等的驱动器。

【问题讨论】:

标签: windows winapi hard-drive


【解决方案1】:

有一个名为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 中的其他功能取代(它应该仍然有效,因为此功能成为新功能的包装器)。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 什么我可以使用 API 来“进一步解析”GetWindowsDirectory() 结果?
    • 获取windows目录路径的首字母即可。
    【解决方案3】:

    系统驱动

    程序文件

    系统根目录

    风向

    不要假设 Program Files 与 Windows 位于同一驱动器上。通常是这样。 通常。

    【讨论】:

    • 您应该提到大写字母是Windows环境变量的名称。
    【解决方案4】:

    请参阅 MSDN 上的 Getting System Information。它在很大程度上解释了如何深入获取系统信息。信息量很大。

    【讨论】:

    • 你需要用代码标签和换行符来格式化答案。
    猜你喜欢
    • 2014-05-02
    • 2016-02-12
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2018-11-01
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多