zoukankan      html  css  js  c++  java
  • windows的磁盘操作之六——获取系统所在物理磁盘号

    很多情况下,我们在程序中需要获知操作系统安装在哪个分区上或者哪个物理磁盘上,进而对其进行一些操作或避免一些操作。例如要避免对系统磁盘分区表的删除操作。本节讨论如何获取操作系统所在的逻辑分区号和物理驱动器号。

    还是先上代码。
    /******************************************************************************
    * Function: get the number of disk which the system installed on
    * input: N/A
    * output: N/A
    * return: Succeed, disk number
    *         Fail, -1
    ******************************************************************************/
    DWORD GetSystemDiskPhysicalNumber(void)
    {
        CHAR sysPath[DISK_PATH_LEN];
        CHAR diskLetter;
       DWORD diskNumber;
       
        DWORD ret = GetSystemDirectory(sysPath, sizeof(sysPath));
        if (ret == 0)
        {
            fprintf(stderr, "GetSystemDirectory() Error: %ld ", GetLastError());
            return (DWORD)-1;
        }
        diskLetter = sysPath[0];
        diskNumber = GetPhysicalDriveFromPartitionLetter(diskLetter);
        return diskNumber;
    }
     
    代码分析:
    1. 先调用GetSystemDirectory 函数获取windows路径。sysPath中存储的路径形式为C:WINDOWSsystem32
    2. 截取sysPath字符串的第一个字符,即可获得系统所在的分区盘符。
    3. 根据逻辑分区号,调用第四节中讨论的GetPhysicalDriveFromPartitionLetter函数即可获得操作系统所在的物理磁盘号。

  • 相关阅读:
    winform中Dock的布局规则
    如何为VS添加编写NHibernate配置文件智能提示的功能
    c# winform 给PictureBox控件添上滚动条,使用滚动条来查看图片,panel滚动条
    Nhibernate使用中遇到的问题
    Best gotchas of C++/CLI
    关于progressbar
    对象序列化
    10个非常不错的CSS技巧
    清除浮动
    Sublime Text2 常用快捷键
  • 原文地址:https://www.cnblogs.com/chaikefusibushiji/p/7475615.html
Copyright © 2011-2022 走看看