プログラミングのメモ帳(C/C++/HSP)

日々のプログラミングで気づいた点や小技集を紹介します。(Windows 10/XP/Vista、VC2017、HSP)

ドライブのボリューム情報を取得

2007年09月24日 07時29分55秒 | ディスク関連

指定ドライブのボリューム情報を調べるには GetVolumeInformation 関数を使います。
調べられるボリューム情報はの5つです。(戻る)

  1. ドライブのボリューム名
  2. ドライブのシリアル番号
  3. ファイル名の最大文字数
  4. ファイルシステム名
  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

関連記事



コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 有効なドライブ名を調べる | トップ | ドライブのボリューム名を設定 »
最新の画像もっと見る

コメントを投稿

ディスク関連」カテゴリの最新記事