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;
    }

  • 相关阅读:
    ./是当前目录 ../是当前的上一级目录。上上级就是../../一般绝对路径时候常用
    java web 代码
    java特点
    KVC
    架构设计:前后端分离之Web前端架构设计
    从MVC到前后端分离
    you don't have permission 错误
    为什么Tomcat的webapps目录下新建的目录不能访问html文件?
    UTF-8编码规则(转)
    Delphi 有关的网址
  • 原文地址:https://www.cnblogs.com/darkdance/p/2266766.html
Copyright © 2011-2022 走看看