// CppGetDriveInfo.cpp : このファイルには 'main' 関数が含まれています。プログラム実行の開始と終了がそこで行われます。 // #include #include int main(void) { DWORD dwDrive; char pszDrive[16]; UINT DriveType; BOOL fResult; unsigned __int64 i64FreeBytesToCaller, i64TotalBytes, i64FreeBytes; char szVolume[256]; DWORD dwSerial, dwLength, dwFlags; char szSystem[256]; //ドライブレターを順番にチェック dwDrive = GetLogicalDrives(); for (int nDrive = 0; nDrive < 26; nDrive++) { //そのドライブレターが使用されているか if (dwDrive & (1 << nDrive)) { sprintf_s(pszDrive, sizeof(pszDrive), "%c:\\", nDrive + 'A'); //HDDかどうか DriveType = GetDriveTypeA(pszDrive); if (DriveType == DRIVE_FIXED || DriveType == DRIVE_REMOVABLE) { printf("%s\n", pszDrive); fResult = GetVolumeInformationA(pszDrive, szVolume, sizeof(szVolume), &dwSerial, &dwLength, &dwFlags, szSystem, sizeof(szSystem)); if (fResult) { printf("ボリューム名          :%s\n", szVolume); printf("ボリュームのシリアル番号    :%08X\n", dwSerial); printf("ファイル名の最大の長さ     :%lu\n", dwLength); printf("ファイルシステムのオプション  :%08X\n", dwFlags); printf("ファイルシステム名       :%s\n", szSystem); } else { printf("エラー:%lu\n", GetLastError()); } fResult = GetDiskFreeSpaceExA(pszDrive, (PULARGE_INTEGER)&i64FreeBytesToCaller, (PULARGE_INTEGER)&i64TotalBytes, (PULARGE_INTEGER)&i64FreeBytes); if (fResult) { printf("呼び出し側が利用できるバイト数 :%I64u\n", i64FreeBytesToCaller); printf("ディスク全体のバイト数     :%I64u\n", i64TotalBytes); printf("ディスク全体の空きバイト数   :%I64u\n", i64FreeBytes); } else { printf("エラー:%lu\n", GetLastError()); } printf("\n"); } } } } // プログラムの実行: Ctrl + F5 または [デバッグ] > [デバッグなしで開始] メニュー // プログラムのデバッグ: F5 または [デバッグ] > [デバッグの開始] メニュー // 作業を開始するためのヒント: // 1. ソリューション エクスプローラー ウィンドウを使用してファイルを追加/管理します // 2. チーム エクスプローラー ウィンドウを使用してソース管理に接続します // 3. 出力ウィンドウを使用して、ビルド出力とその他のメッセージを表示します // 4. エラー一覧ウィンドウを使用してエラーを表示します // 5. [プロジェクト] > [新しい項目の追加] と移動して新しいコード ファイルを作成するか、[プロジェクト] > [既存の項目の追加] と移動して既存のコード ファイルをプロジェクトに追加します // 6. 後ほどこのプロジェクトを再び開く場合、[ファイル] > [開く] > [プロジェクト] と移動して .sln ファイルを選択します