Win32API ファイルの種類を取得する GetFileType
ファイルの種類を取得するには、GetFileType関数を用いる。
- GetFileTypeのプロトタイプ
DWORD GetFileType( HANDLE hFile // ファイルのハンドル );
戻り値は以下の4種類がある
値 | 意味 |
FILE_TYPE_UNKNOWN | 不明 |
FILE_TYPE_DISK | ディスクファイル |
FILE_TYPE_CHAR | LPT デバイスやコンソールのような文字ファイル |
FILE_TYPE_PIPE | 名前付きまたは名前なしパイプ |
- 使用例
#include <windows.h> void PrintFileType(HANDLE hFile) { switch (GetFileType(hFile)) { case FILE_TYPE_UNKNOWN: puts("不明"); break; case FILE_TYPE_DISK: puts("ディスクファイル"); break; case FILE_TYPE_CHAR: puts("LPT デバイスやコンソールのような文字ファイル"); break; case FILE_TYPE_PIPE: puts("名前付きまたは名前なしパイプ"); break; default: puts("???"); break; } } int main() { HANDLE hPipe = CreateNamedPipe("\\\\.\\pipe\\mypipe", PIPE_ACCESS_DUPLEX, PIPE_TYPE_BYTE, 1, 1024, 1024, 1000, NULL); HANDLE hFile = CreateFile("C:\\test.txt", GENERIC_READ, 0, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL); HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE); PrintFileType(hPipe); PrintFileType(hFile); PrintFileType(hStdout); CloseHandle(hPipe); CloseHandle(hFile); return 0; }