zoukankan      html  css  js  c++  java
  • GetLogicalDriveStringS获取驱动器根路径 流沙

    #include <windows.h>
    #include <stdlib.h>
    #include <stdio.h>

    // 预定义
    #define BUFSIZE 1024

    //函数申明
    BOOL GetDirverInfo(LPSTR szDrive);


    void main(void)
    {
    CHAR szLogicalDriveStrings[BUFSIZE];
    PCHAR szDrive;用来指向字符数组

    //将上面申请的CHar数组用O填充
    ZeroMemory(szLogicalDriveStrings,BUFSIZE);
    //获取逻辑驱动器卷标名  写入数组
    GetLogicalDriveStrings(BUFSIZE-1,szLogicalDriveStrings);
    //指向字符数组
    szDrive=(PCHAR)szLogicalDriveStrings;

    //循环每个卷
    do
    {
    if(!GetDirverInfo(szDrive))
    {
    printf("\n 获取错误:%d",GetLastError());
    }
    szDrive +=(lstrlen(szDrive)+1);
    }
    while(*szDrive!='\x00');

    printf("\n",szDrive);
    }


    BOOL GetDirverInfo(LPSTR szDrive)
    {
    UINT uDriveType;
    DWORD dwVolumeSerialNumber;
    DWORD dwMaximumComponentLength;
    DWORD dwFileSystemFlags;
    CHAR szFileSystemNameBuffer[BUFSIZE];
    CHAR szDirveName[MAX_PATH];

    printf("\n%s\n",szDrive);
    uDriveType = GetDriveType(szDrive);//TCHAR的指针类型
    switch(uDriveType)
    {
    case DRIVE_UNKNOWN:
    printf("the drive type cannot be determined");
    break;
    case DRIVE_NO_ROOT_DIR:
    printf("the root path is invalid, for example,no volume is mounted at the path");
    break;
    case DRIVE_REMOVABLE:
    printf("the drive is a type that has removable media,for example,a floppy drive or removable hard disk");
    break;
    case DRIVE_FIXED:
    printf("the drive is a type that cannot be removed,for example,a fixed hard drive");
    break;
    case DRIVE_REMOTE:
    printf("the drive is a remote(network) drive");
    break;
    case DRIVE_CDROM:
    printf("the drive is a CD_ROM drive");
    break;
    case DRIVE_RAMDISK:
    printf("the drive is a RAM disk");
    break;
    default:
    break;

    }
    if(!GetVolumeInformation(//读取文件系统信息
    szDrive,
    szDirveName,
    MAX_PATH,
    &dwVolumeSerialNumber,
    &dwMaximumComponentLength,
    &dwFileSystemFlags,
    szFileSystemNameBuffer,
    BUFSIZE
    ))
    {
    return FALSE;
    }
    if(0!=lstrlen(szDirveName))
    {
    printf("\nDrive name is %s\n",szDirveName);
    }
    printf("\nVolume serial Number is %u",dwVolumeSerialNumber);
    printf("\nMaximum Component Length is %u",dwMaximumComponentLength);
    printf("\nsystem type is %s\n",szFileSystemNameBuffer);

    if (dwFileSystemFlags & FILE_VOLUME_QUOTAS)
    {
    printf("the file system supports disk quotas");

    }
    if (dwFileSystemFlags & FILE_CASE_SENSITIVE_SEARCH)
    {
    printf("the file system supports case-sensitive file names");
    }
    return TRUE;
    }

  • 相关阅读:
    003 Leaflet 第三个demo 地图上的面积测量
    002 Leaflet 第二个demo 地图上的矩形拉框选择
    001 Leaflet 第一个demo 加载天地图
    This关键字,打印花瓣的数量
    Myeclipse8.5 添加Tomcat7
    WGS84经纬度 与 web 墨卡托相互转化 工具类
    java list集合去重复
    response 下载文件
    jquery实现可拖拽的div
    linux 前端环境搭建
  • 原文地址:https://www.cnblogs.com/darkdance/p/2266766.html
Copyright © 2011-2022 走看看