3

ローカルマシンですべての物理ドライブを利用できるようにしようとしています。使用しようとしましGetLogicalDrives()たが、この機能を使用すると、マシンで物理的に使用できないドライブ、たとえばフロッピードライブAも取得します。コードは次のとおりです。

void FindDrives()
{
    DWORD drives = GetLogicalDrives();
     for (int i=0; i<26; i++)
     {
        if( ( drives & ( 1 << i ) ) )
        {
           wchar_t driveName[] = { L'A' + i, L':', L'\\', L'\0'};
           std::wcout << driveName << std::endl;
        }
     }
}

物理的に利用可能なドライブのみを取得するにはどうすればよいですか?

4

1 に答える 1

2

wmicを使ってみてください

wmic diskdrive list

少ない情報のために

wmic diskdrive list brief 

または、cでは、最初にGetLogicalDrives()を使用して、システムにマップされているすべてのドライブを取得し、次にGetDriveType()を使用して、それぞれがどの種類のドライブであるかを確認します。次に、必要に応じて整理します。

于 2012-10-23T08:14:36.707 に答える