ファイル(フォルダー)の属性を調べる



VC++ でファイルの存在(エラー)をチェックする最も簡単な方法です。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プロジェクトの設定

  1. 新規プロジェクトで[空のプロジェクト](Attribute) を作成します。
    "C:\\TMP\\A.TXT" のファイルをチェックするので、事前に C:\TMP のフォルダーを作成して A.TXT の名前でファイルを作成しておいて下さい。
    Windows95 や WindowsXP ではフォルダー名やファイル名に英大文字と小文字の区別はありません。
  2. ソースコードです。
    /**************************************/
    /*★ Path の属性を調べる    前田 稔 ★*/
    /**************************************/
    #include    <windows.h>
    char    path1[]= {  "C:\\TMP"  };
    char    path2[]= {  "C:\\TMP\\A.TXT"  };
    
    //★ Windows Main 関数
    int PASCAL  WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, int)
    {   char    buf[MAX_PATH];
        DWORD   rc;
    
        rc= GetFileAttributes(path1);
        wsprintf(buf,"path=%s  rc=%X",path1,rc);
        MessageBox(NULL,buf,"path の属性です",MB_OK);
    
        rc= GetFileAttributes(path2);
        wsprintf(buf,"path=%s  rc=%X",path2,rc);
        MessageBox(NULL,buf,"path の属性です",MB_OK);
    
        return 0;
    }
        
  3. 代表的な属性は、次のように定義されています。
        #define FILE_ATTRIBUTE_READONLY         0x00000001
        #define FILE_ATTRIBUTE_HIDDEN           0x00000002
        #define FILE_ATTRIBUTE_SYSTEM           0x00000004
        #define FILE_ATTRIBUTE_DIRECTORY        0x00000010
        #define FILE_ATTRIBUTE_ARCHIVE          0x00000020
        #define FILE_ATTRIBUTE_NORMAL           0x00000080
        #define FILE_ATTRIBUTE_TEMPORARY        0x00000100
        

【演習】

  1. ファイルの属性(リードオンリーなど)を変更してプログラムで確認して下さい。
  2. 存在しないファイル(フォルダー)を指定してプログラムを実行してみて下さい。
    0xFFFFFFFF がリターンされます。
  3. ドライブに格納されているシステムファイルなども調べてみて下さい。

超初心者のプログラム入門(Win32API C++)