• <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();
        }

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

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 亚洲经典千人经典日产| 久久久久亚洲精品无码蜜桃| 亚洲国产成人无码AV在线| 99在线精品免费视频九九视| 亚洲成色在线影院| 国产精品免费福利久久| 亚洲精品自产拍在线观看动漫| 国产免费AV片在线观看| 亚洲av永久无码制服河南实里| 99re8这里有精品热视频免费| 亚洲无码在线播放| 毛片在线全部免费观看| 337p日本欧洲亚洲大胆色噜噜| 67pao强力打造高清免费| 亚洲自国产拍揄拍| 午夜神器成在线人成在线人免费| 在线看亚洲十八禁网站| 亚洲中文字幕成人在线| 免费网站看av片| 亚洲人成电影在线观看青青| 成年人在线免费看视频| 特级做a爰片毛片免费看| 亚洲乱码国产一区三区| 99精品国产成人a∨免费看| 亚洲一区二区三区播放在线| 成人免费视频88| 一级特黄特色的免费大片视频| 亚洲AV无码第一区二区三区| 永久免费视频网站在线观看| 亚洲爆乳无码专区www| 亚洲精品国产电影| 久久精品毛片免费观看| 亚洲精品日韩一区二区小说| 亚洲中文字幕无码中文字在线| 1000部拍拍拍18勿入免费视频软件| 亚洲Aⅴ在线无码播放毛片一线天| 亚洲精品无码久久久影院相关影片 | 国产卡二卡三卡四卡免费网址| 国产精品亚洲а∨无码播放麻豆| 国产AV无码专区亚洲精品| 免费电视剧在线观看|