する#include <stdio.hに> する#include <WINDOWS.H> のtypedef 構造体tagDRIVER { // (1)ドライブレター ディスクのwchar_t; // (2)の合計ディスクサイズ ダブルすべて; // 利用可能なディスクスペース(3) 二重 フリー; // (4)磁気ディスク(光ディスク、ハードディスク、又はモバイルハードディスク)型 のint タイプ; }ドライバと、 ボイドgetDrivers() { BOOL FRESULT; // ディスク情報構造を定義する ドライバにDIRを; // ディスクを横断 するため(のwchar_t = D ' A ' ; D <= ' Z '; D ++ ) { // ディスクメッセージ構造は、0クリア のmemset(&DIR、0、はsizeof (DRIVER)); 未署名_int64 i64FreeBytesToCaller、 符号なし_int64のi64TotalBytes; ;符号なし_int64のi64FreeBytes TCHAR szTemp [ 3。 = {Dを、] ' :'、' \ 0 " }; // ディスクタイプが取得 UINT uType = GetDriveTypeW(szTempが); // DRIVE_UNKNOWNドライブの種類を決定することはできません。 // DRIVE_NO_ROOT_DIRルートパスが無効である;例えば、ボリュームが指定されたパスにインストールされていません。 //DRIVE_REMOVABLEドライブは、リムーバブルメディアを有し、例えば、フロッピーディスクドライブ、サムドライブ、又はフラッシュメモリカードリーダ。 // DRIVE_FIXEDドライブがメディアを固定している;例えば、ハードディスクドライブやフラッシュドライブ。 // DRIVE_REMOTEドライブは、リモート(ネットワーク)ドライブです。 // DRIVE_CDROMドライブは、CD-ROMドライブがあります。 // DRIVE_RAMDISKドライブはRAMディスクです。 スイッチ(uType) { ケースDRIVE_FIXEDは: { // 。ハードドライブは1 dir.type = 1 ; BREAK ; } ケースDRIVE_CDROM: { // 光ディスク2である dir.type = 2 ; BREAK 。 } ケースDRIVE_REMOTEは: { // ドライブである3。 dir.type = 3 ; BREAK ; } デフォルト: { 続行; } } // 組織を入手GetDiskFreeSpaceEx約残りのディスクの空き容量情報 FRESULT = GetDiskFreeSpaceEx(szTemp、(PULARGE_INTEGER )&i64FreeBytesToCaller、(PULARGE_INTEGER)&i64TotalBytes、(PULARGE_INTEGER)&i64FreeBytes); // 文字 dir.disk = D; IF (FRESULT) { dir.all =(ダブル)(i64TotalBytes / 1024.0 / 1024個の / 1024個の) 。DIR 無料 =(ダブル)(i64FreeBytesToCaller / 1024.0 / 1024個の / 1024個の); } 他 { dir.all = 0.0 ; 。DIR 無料 = 0.0 ; } のprintf(" %Cプレート:合計%.2fGB、利用可能%.2fGB、ディスクタイプ:%D \ N- "。、dir.disk、dir.all、DIR フリー、dir.type); } } INTメイン() { GetDrivers()。 getchar関数(); リターン 0 ; }