C++ Builder Tips


ファイルの属性を調べる


GetFileAttributes()関数を使用します。調べたいファイル名をこの関数にいれると、属性情報を得る事が出来ます。属性情報はそのファイルがもつすべての属性の和になっていますので、調べたい種類の属性とのANDをとります。下の例では、読取専用の属性をもつかどうか調べます。

GetFileAttributesの属性は以下のとおりです。
FILE_ATTRIBUTE_ARCHIVE
 ファイルまたはディレクトリはアーカイブ ファイルまたはアーカイブ ディレクトリです。アプリケーションはこのフラグを使って、 バックアップまたは削除としてファイルをマークできます。
FILE_ATTRIBUTE_DIRECTORY
 「ファイルまたはディレクトリ」はディレクトリです。
FILE_ATTRIBUTE_HIDDEN
 ファイルまたはディレクトリは隠し属性です。通常のディレクトリ リスティングには、 このファイルまたはディレクトリは含まれません。
FILE_ATTRIBUTE_NORMAL
 ファイルまたはディレクトリには、 これ以外のほかの属性はありません。この属性は、 単独で指定したときだけ有効です。
FILE_ATTRIBUTE_READONLY
 ファイルまたはディレクトリは書き込み禁止属性です。アプリケーションは、 ファイルの読み取りはできますが、 書き込みや削除はできません。ディレクトリの場合は、 削除できません。
FILE_ATTRIBUTE_SYSTEM
 ファイルまたはディレクトリはオペレーティング システムの一部です。または、 オペレーティング システム専用として使われます。
FILE_ATTRIBUTE_TEMPORARY
 ファイルまたはディレクトリは一時的な記憶域として使われます。ファイル システムは、 記憶量の大きい記憶域にデータをフラッシュするよりは、 データのすべてが素早くアクセスできるようにメモリ内に置いておこうとします。アプリケーションは必要がなくなったら、 一時ファイルをできるだけ早く削除しなければなしません。


AnsiString fileName;
DWORD fa;

fileName = ExtractFilePath(Application->ExeName)+"sample.txt";
fa = GetFileAttributes(fileName.c_str());

if(fa & FILE_ATTRIBUTE_READONLY)
{
    return;
}


目次に戻る
Copyright(c) 2008 WoodenSoldier Software