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

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

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 日韩毛片一区视频免费| 欧洲 亚洲 国产图片综合| 老司机免费午夜精品视频| 天天看免费高清影视| 亚洲爆乳精品无码一区二区| 在线a级毛片免费视频| 亚洲伊人精品综合在合线| 西西大胆无码视频免费| 亚洲AV无码成人精品区日韩 | 亚洲片国产一区一级在线观看| 亚洲国产无线乱码在线观看 | 一个人免费视频在线观看www | 国产乱子影视频上线免费观看| 亚洲色大成网站www永久男同| 午夜成人免费视频| 韩国亚洲伊人久久综合影院| 亚洲精品WWW久久久久久| 两个人看的www高清免费观看| 久久亚洲AV无码精品色午夜麻| 99久久99久久精品免费看蜜桃| 亚洲中文字幕无码中文字| 免费一级做a爰片性色毛片| 亚洲阿v天堂在线2017免费| 亚洲短视频男人的影院| 嫖丰满老熟妇AAAA片免费看| 亚洲GV天堂GV无码男同| 在线观看亚洲精品福利片| 国产99视频精品免费专区| 麻豆狠色伊人亚洲综合网站 | 无码av免费网站| 亚洲中文字幕乱码一区| 亚洲精品国产综合久久一线| 久久久免费的精品| 亚洲欧美日韩久久精品| 国产国拍精品亚洲AV片| 久草在视频免费福利| 一级一级毛片免费播放| 亚洲午夜电影在线观看| 亚洲国产精品自产在线播放| 国产精品视频免费| 久久嫩草影院免费看夜色|