例えば、アプリケーションを作っている時に、このデータはリムーバブルメディアには保存できるようにはしたくないといった要求が出る時があります。そんな時には、そのドライブがどのような種別なのか、ハードディスクなのか、リムーバブルドライブなのか、はたまたネットワークドライブなのか、といったドライブの種別を判定する必要があります。そのような場合には、GetDriveType Win32 API を使用することでそれを判定することができます。サンプルプログラムを以下に示します。このプログラムでは、そのマシンにつながっている各ドライブをサーチして使用可能なドライブの種別を表示します。
#define STRICT
#include <windows.h>
#include <stdio.h>
main()
{
static const char * const drvtype[] = {
"UNKNOWN", "NOROOT",
"REMOVABLE", "FIXED", "REMOTE", "CDROM", "RAMDISK",
};
char drvname[] = "?:\\";
int i, dt;
for(i = 'A'; i <= 'Z'; i++) {
drvname[0] = i;
dt = GetDriveType(drvname);
if(dt != DRIVE_NO_ROOT_DIR) {
printf("%s %s\n", drvname, drvtype[dt]);
}
}
return 0;
}
|
by seclan