• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

        讀取全部的驅動器的信息

        讀取全部的驅動器的信息

        更新時間:2022-05-13 文章作者:未知 信息來源:網絡 閱讀次數:

        作者:安靜

        VC6.0 W2K編譯通過

        這類小程序,能用的地方很多.所以就寫一個完整的代碼
        給大家參考參考

        #include "stdafx.h"
        #include  <iostream.h>
        const DWORD MAXLEN = 100;

        void ShowDriveInfo(LPTSTR drive)
        {
        //輸出設備類型
        UINT result;
        result = GetDriveType(drive);

        if (result == DRIVE_REMOVABLE)
        cout << "可移動設備" ;
        else if (result == DRIVE_FIXED)
        cout << "硬盤";
        else if (result == DRIVE_REMOTE)
        cout << "網絡驅動器" ;
        else if (result == DRIVE_CDROM )
        cout << " 光驅";
        else if (result == DRIVE_RAMDISK)
        cout << "Ram Disk";
        else if (result == DRIVE_UNKNOWN)
        cout << "未知的設備";
        else
        return;
        cout << '\t';

        //給出空間信息

        unsigned __int64 i64FreeBytesToCaller;
        unsigned __int64 i64TotalBytes;
        unsigned __int64 i64FreeBytes;

        DWORD dwSectPerClust;
        DWORD dwBytesPerSect;
        DWORD dwFreeClusters;
        DWORD dwTotalClusters;

        DWORD tempTotal;
        DWORD tempFree;

        BOOL fResult;
        typedef DWORD (WINAPI * GETDISKFREESPACEEX)(LPCTSTR ,
        PULARGE_INTEGER ,
        PULARGE_INTEGER ,
        PULARGE_INTEGER );

        GETDISKFREESPACEEX pGetDiskFreeSpaceEx;

        pGetDiskFreeSpaceEx = (GETDISKFREESPACEEX)GetProcAddress( GetModuleHandle("kernel32.dll"),
        "GetDiskFreeSpaceExA");

        if (pGetDiskFreeSpaceEx) //如果是Windows NT and Windows 2000使用 GetDiskFreeSpaceEx
        {
        fResult = pGetDiskFreeSpaceEx ( (LPCTSTR)drive,
        (PULARGE_INTEGER)&i64FreeBytesToCaller,
        (PULARGE_INTEGER)&i64TotalBytes,
        (PULARGE_INTEGER)&i64FreeBytes);

        tempTotal = i64TotalBytes/1024 ;
        tempFree = i64FreeBytes/1024;

        }

        else //如果是Windows 95 OSR2 and Windows 98 使用 GetDiskFreeSpace
        {
        fResult = GetDiskFreeSpace (drive,
        &dwSectPerClust,
        &dwBytesPerSect,
        &dwFreeClusters,
        &dwTotalClusters);

        tempTotal = dwTotalClusters*dwBytesPerSect*dwSectPerClust/1024;
        tempFree = dwFreeClusters*dwSectPerClust*dwBytesPerSect/1024;



        }
        if(fResult)
        {
        cout<<"全部磁盤容量是 "<<((float)(tempTotal)/1024/1024)<<"GB\t";
        cout<<"空余磁盤容量是 "<<((float)(tempFree)/1024/1024)<<"GB\t";
        }
        cout<<endl;

        //像光驅,軟盤,不放盤的時候,GetDiskFreeSpace(Ex)會出錯.

        }
        void GetAllDrive()
        {

        int len = -1;
        char drive[4] ="AAA" ;
        LPTSTR lpDriveString = new char[MAXLEN];
        DWORD dwBufferLen = MAXLEN ;
        len = GetLogicalDriveStrings(dwBufferLen,lpDriveString); //取得全部的盤符
        if (len < 0)
        cout << "操作失敗" <<endl;
        if (len > MAXLEN)
        cout << "Buffer不足" <<endl;
        if (len > 0)
        {
        for (int i = 0;i < len;i = i+4) //得到的盤符有4個字符組成 A:\(null)
        {
        drive[0] = lpDriveString[i]; //A
        drive[1] = lpDriveString[i+1];//:
        drive[2] = lpDriveString[i+2];// 第三個\
        //drive[3] = '\0'; // 第四個為null字符
        cout<<drive<<'\t';

        ShowDriveInfo(drive);
        }
        }
        /////////////////////////////////////////////
        //另外一種方法.
        ///////////////////////////////////////////////
        /*
        char D = 'A';
        char Drive[4]="X:\\";
        for(int i = 0; i < 26;i++)
        {
        Drive[0] = (char)(D+i);
        cout<<Drive<<'\t';
        ShowDriveInfo(Drive);
        }
        */

        }

        void main()
        {
        GetAllDrive();
        }

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 久久国产精品免费一区二区三区 | 99久久国产热无码精品免费| 亚洲av中文无码乱人伦在线r▽| 日产久久强奸免费的看| 日韩亚洲国产二区| 黄视频在线观看免费| 国产精品亚洲片在线观看不卡 | 亚洲AV无一区二区三区久久| 久久久久久影院久久久久免费精品国产小说 | 四虎精品免费永久免费视频| 亚洲精品综合久久| 日韩成人免费视频| 亚洲系列国产精品制服丝袜第| 18勿入网站免费永久| 亚洲AV日韩综合一区尤物| 波多野结衣视频在线免费观看| 一级做性色a爰片久久毛片免费| 亚洲中文字幕在线乱码| 久久中文字幕免费视频| 亚洲13又紧又嫩又水多| 四虎永久免费地址在线观看| 精精国产www视频在线观看免费| 亚洲黄色在线观看视频| 妞干网在线免费视频| 成人国产网站v片免费观看| 亚洲AV无码乱码在线观看裸奔| 免费福利网站在线观看| 特级毛片A级毛片免费播放| 亚洲精品无码成人片久久| 国产免费一区二区三区| 男人免费视频一区二区在线观看 | 亚洲人成在线免费观看| 国产精品亚洲一区二区三区久久 | 国产麻豆成人传媒免费观看| 亚洲AV无码国产精品色| 亚洲国产精品第一区二区三区| 免费国产污网站在线观看15 | 亚洲AV福利天堂一区二区三| 97人伦色伦成人免费视频 | 久久不见久久见中文字幕免费 | 久久久www成人免费毛片|