現在利用可能なディスクドライブを取得するには、GetLogicalDrives()関数を呼び出します。 関数が成功すると、現在利用可能なディスクドライブを表すビットマスクが返ります。 ビット 0(最下位ビット)はドライブ A、ビット 1 はドライブ B、ビット 2 はドライブ C を示し、以降は同じように25ビットのZドライブまでの情報が取得できます。
#include <stdio.h> #include <tchar.h> #include <locale.h> #include <windows.h> int _tmain ( int argc , _TCHAR* argv[] ) { /* ロケールを日本に設定 これを設定するだけで、標準出力に日本語が表示される ようになります。 */ setlocale( LC_ALL, "Japanese" ); // 現在利用可能な論理ドライブをビットマスクで取得する DWORD dwLogicalDrives = ::GetLogicalDrives(); // 利用可能なドライブを標準出力へ表示する for ( int iI = 0; iI < 26; iI++ ) { if ( 0 != ( ( 1 << iI ) & dwLogicalDrives ) ) { wprintf_s( _T("%c, "), 'A' + iI ); } } // 正常終了 return( 0 ); }
C, D, F,