指定ドライブのボリューム情報を調べるには GetVolumeInformation 関数を使います。
調べられるボリューム情報はの5つです。(戻る)
- ドライブのボリューム名
- ドライブのシリアル番号
- ファイル名の最大文字数
- ファイルシステム名
- ファイルシステムのフラグ
プロトタイプ宣言
BOOL GetVolumeInformation( LPCTSTR lpRootPathName, // ルート・ディレクトリ LPTSTR lpVolumeNameBuffer, // ボリューム名のバッファ領域 DWORD nVolumeNameSize, // ボリューム名のバッファ容量 LPDWORD lpVolumeSerialNumber, // ボリュームのシリアル番号 LPDWORD lpMaximumComponentLength, // ファイル名の最大の文字数 LPDWORD lpFileSystemFlags, // ファイルシステムのフラグ値 LPTSTR lpFileSystemNameBuffer, // ファイルシステム名のバッファ領域 DWORD nFileSystemNameSize // ファイルシステム名のバッファ容量 );
サンプル
#include <stdio.h> #include <string.h> #include <windows.h> // メイン関数 int main( void ) { TCHAR szRoot[ 16 ]; TCHAR szVolume[ 256 ]; TCHAR szSystem[ 256 ]; DWORD dwSerial; DWORD dwLength; DWORD dwFlags; // ドライブの設定 strcpy( szRoot, TEXT("C:\\") ); // ボリューム情報の取得 GetVolumeInformation( szRoot, szVolume, sizeof(szVolume), &dwSerial, &dwLength, &dwFlags, szSystem, sizeof(szSystem) ); printf( TEXT("GetVolumeInformation()関数のテスト\n") ); printf( TEXT("\n") ); printf( TEXT("ドライブ名 :%s\n"), szRoot ); printf( TEXT("ドライブのボリューム名:%s\n"), szVolume ); printf( TEXT("ドライブのシリアル番号:%08X\n"), dwSerial ); printf( TEXT("\n") ); printf( TEXT("ファイルシステム名 :%s\n"), szSystem ); printf( TEXT("ファイルシステムフラグ:%08X\n"), dwFlags ); printf( TEXT("ファイル名の最大文字数:%lu\n"), dwLength ); return 0; }
実行結果
GetVolumeInformation()関数のテスト ドライブ名 :C:\ ドライブのボリューム名:Windows Vista ドライブのシリアル番号:7E94C9AB ファイルシステム名 :NTFS ファイルシステムフラグ:002700FF ファイル名の最大文字数:255
関連記事
- ドライブのボリューム情報を取得
- ドライブのボリューム名を設定
※コメント投稿者のブログIDはブログ作成者のみに通知されます