指定ドライブの種類を調べるには GetDriveType 関数を使います。
交換可能とは、FDD(フロッピー・ディスク・ドライブ)のようなドライブです。
交換不可能とは、HDD(ハード・ディスク・ドライブ)のようなドライブです。
CD-ROMドライブとは、CD-ROM/R/RW、DVD-ROM/R/RW/RAMなどの光ディスク・ドライブです。(戻る)
ドライブの種類
- 交換可能なドライブ
- 交換不可能なドライブ(固定)
- CD-ROMドライブ
- RAMドライブ
- ネットワーク・ドライブ
プロトタイプ宣言
UINT GetDriveType( LPCTSTR lpRootPathName // ルートディレクトリ );
サンプル
#include <stdio.h> #include <windows.h> // break付きのキーワード #define CASE break;case #define DEFAULT break;default // メイン関数 int main( void ) { TCHAR szRoot[ 16 ]; LPCTSTR lpMedia; INT nDrive; // 結果表示 printf( TEXT("GetDriveType()関数のテスト\n") ); printf( TEXT("\n") ); // ドライブの種類 for ( nDrive = TEXT('A') ; nDrive <= TEXT('Z') ; nDrive++ ){ sprintf( szRoot, TEXT("%c:\\"), nDrive ); switch ( GetDriveType(szRoot) ){ CASE DRIVE_UNKNOWN: lpMedia = TEXT("不明なドライブ"); CASE DRIVE_NO_ROOT_DIR: lpMedia = TEXT("ドライブが存在しない"); CASE DRIVE_REMOVABLE: lpMedia = TEXT(" FD ドライブ"); CASE DRIVE_FIXED: lpMedia = TEXT(" HD ドライブ"); CASE DRIVE_REMOTE: lpMedia = TEXT("ネットワーク・ドライブ"); CASE DRIVE_CDROM: lpMedia = TEXT(" CD-ROM ドライブ"); CASE DRIVE_RAMDISK: lpMedia = TEXT(" RAM ディスク"); DEFAULT: lpMedia = TEXT("?????"); } printf( TEXT("ドライブ %s のメディアは%sです。\n"), szRoot, lpMedia ); } return 0; }
実行結果
GetDriveType()関数のテスト ドライブ A:\ のメディアはドライブが存在しないです。 ドライブ B:\ のメディアはドライブが存在しないです。 ドライブ C:\ のメディアは HD ドライブです。 ドライブ D:\ のメディアは HD ドライブです。 ドライブ E:\ のメディアは CD-ROM ドライブです。 ドライブ F:\ のメディアは HD ドライブです。 ドライブ G:\ のメディアは HD ドライブです。 ドライブ H:\ のメディアは FD ドライブです。 ドライブ I:\ のメディアは FD ドライブです。 ドライブ J:\ のメディアはドライブが存在しないです。 ドライブ K:\ のメディアはドライブが存在しないです。 ドライブ L:\ のメディアはドライブが存在しないです。 ドライブ M:\ のメディアはドライブが存在しないです。 ドライブ N:\ のメディアはドライブが存在しないです。 ドライブ O:\ のメディアはドライブが存在しないです。 ドライブ P:\ のメディアはドライブが存在しないです。 ドライブ Q:\ のメディアはドライブが存在しないです。 ドライブ R:\ のメディアはドライブが存在しないです。 ドライブ S:\ のメディアはドライブが存在しないです。 ドライブ T:\ のメディアはドライブが存在しないです。 ドライブ U:\ のメディアはドライブが存在しないです。 ドライブ V:\ のメディアはドライブが存在しないです。 ドライブ W:\ のメディアはドライブが存在しないです。 ドライブ X:\ のメディアはドライブが存在しないです。 ドライブ Y:\ のメディアはドライブが存在しないです。 ドライブ Z:\ のメディアは HD ドライブです。
- 私の環境ではFDD(フロッピー・ディスク・ドライブ)が存在しないので A: B: が存在しないと表示されます。
- パソコンに内蔵されたHDD(ハードディスク・ドライブ)が2つに分かれてるので C: D: 「HD ドライブ」と表示されます。
- また、外付けで小型のHDD(ハードディスク・ドライブ)を2つ接続してるので F: G: も「HD ドライブ」と表示されます。
- あと、USBフラッシュ・メモリを2つ接続してるので H: I: がFDDではないけれども「FD ドライブ」と表示されます。
- 最後の Z: は C: ドライブのフォルダを SUBST コマンドで仮想ドライブ化してるので「HD ドライブ」と表示されます。
関連記事
- ディスク情報の取得
- ディスク容量の取得(1)
- ディスク容量の取得(2)
- ドライブの種類を調べる
- 有効なドライブ名を調べる
※コメント投稿者のブログIDはブログ作成者のみに通知されます