Win32API コンピュータ上の一意のボリューム名を列挙する FindFirstVolume
コンピュータ上の一意のボリューム名を列挙するには、FindFirstVolume関数, FindNextVolume関数, FindVolumeClose関数を用いる。
FindFirstVolumeのプロトタイプ
//戻り値は、ボリュームの検索ハンドル HANDLE FindFirstVolume( LPTSTR lpszVolumeName, // 出力バッファへのポインタ DWORD cchBufferLength // 出力バッファのサイズ );
FindNextVolumeのプロトタイプ
//関数が成功した場合、TRUEを返す。 BOOL FindNextVolume( HANDLE hFindVolume, // 実行中のスキャンのハンドル LPTSTR lpszVolumeName, // 出力文字列へのポインタ DWORD cchBufferLength // 出力バッファのサイズ );
FindVolumeCloseのプロトタイプ
BOOL FindVolumeClose( HANDLE hFindVolume // 閉じるハンドル );
使用例
#include <windows.h> #include <stdio.h> int main() { HANDLE hVolume; char szVolumeName[MAX_PATH] = {'\0'}; DWORD dwLen = sizeof(szVolumeName)/sizeof(szVolumeName[0]); hVolume = FindFirstVolume(szVolumeName, dwLen); if (hVolume == INVALID_HANDLE_VALUE) { return 1; } do { printf("%s\n", szVolumeName); } while (FindNextVolume(hVolume, szVolumeName, dwLen)); FindVolumeClose(hVolume); return 0; }
参考
http://msdn.microsoft.com/ja-jp/library/cc429237.aspx
http://msdn.microsoft.ja-jp/library/cc429244.aspx
http://msdn.microsoft.com/ja-jp/library/cc429249.aspx