ファイル属性定数

ファイル属性は、ディスク上のファイル システムによって格納されるメタデータ値であり、システムによって使用され、さまざまなファイル I/O API を介して開発者が使用できます。 関連する API とトピックの一覧については、「関連項目 」セクションを参照 してください。

FILE_BASIC_INFO basicInfo;
    BOOL result;

    result = GetFileInformationByHandleEx( hFile,
                                               FileBasicInfo,
                                               &basicInfo,
                                               sizeof(basicInfo));

\\...

printf("  File Attributes: ");
    PrintFileAttributes(basicInfo.FileAttributes);

\\...
VOID
PrintFileAttributes(
    ULONG FileAttributes
    )
{
    
    if (FileAttributes & FILE_ATTRIBUTE_ARCHIVE) {
        printf("Archive ");
    }
    if (FileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
        printf("Directory ");
    }
    if (FileAttributes & FILE_ATTRIBUTE_READONLY) {
        printf("Read-Only ");
    }
}

GitHub の Windows クラシック サンプル から取得した例。

定数/値 Description
FILE_ATTRIBUTE_READONLY
1 (0x00000001)
読み取り専用のファイル。 アプリケーションはファイルを読み取ることができますが、ファイルに書き込んだり削除したりすることはできません。 この属性はディレクトリでは受け入れられません。 詳細については、「 Windows Server 2003、Windows XP、Windows Vista、または Windows 7 では、フォルダーの読み取り専用またはシステム属性を表示または変更できない」を参照してください。
FILE_ATTRIBUTE_HIDDEN
2 (0x00000002)
ファイルまたはディレクトリは非表示です。 通常のディレクトリ一覧には含まれません。
FILE_ATTRIBUTE_SYSTEM
4 (0x00000004)
オペレーティング システムがの一部を使用するか、排他的に使用するファイルまたはディレクトリ。
FILE_ATTRIBUTE_DIRECTORY
16 (0x00000010)
ディレクトリを識別するハンドル。
FILE_ATTRIBUTE_ARCHIVE
32 (0x00000020)
アーカイブ ファイルまたはディレクトリであるファイルまたはディレクトリ。 アプリケーションでは通常、この属性を使用して、バックアップまたは削除のためにファイルをマークします。
FILE_ATTRIBUTE_DEVICE
64 (0x00000040)
この値は、システムで使用するために予約されています。
FILE_ATTRIBUTE_NORMAL
128 (0x00000080)
他の属性が設定されていないファイル。 この属性は、単独で使用する場合にのみ有効です。
FILE_ATTRIBUTE_TEMPORARY
256 (0x00000100)
一時ストレージに使用されているファイル。 十分なキャッシュ メモリが使用可能な場合、ファイル システムは大容量ストレージにデータを書き戻さないようにします。これは、通常、ハンドルが閉じられた後にアプリケーションによって一時ファイルが削除されるためです。 そのシナリオでは、システムはデータの書き込みを完全に回避できます。 それ以外の場合、データはハンドルが閉じられた後に書き込まれます。
FILE_ATTRIBUTE_SPARSE_FILE
512 (0x00000200)
スパース ファイルであるファイル。
FILE_ATTRIBUTE_REPARSE_POINT
1024 (0x00000400)
再解析ポイントが関連付けられているファイルまたはディレクトリ、またはシンボリック リンクであるファイル。
FILE_ATTRIBUTE_COMPRESSED
2048 (0x00000800)
圧縮されたファイルまたはディレクトリ。 ファイルの場合、ファイル内のすべてのデータが圧縮されます。 ディレクトリの場合、圧縮は新しく作成されたファイルとサブディレクトリの既定値です。
FILE_ATTRIBUTE_OFFLINE
4096 (0x00001000)
ファイルのデータはすぐには使用できません。 この属性は、ファイル データが物理的にオフライン ストレージに移動されることを示します。 この属性は、階層ストレージ管理ソフトウェアであるリモート ストレージによって使用されます。 アプリケーションでは、この属性を任意に変更しないでください。
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
8192 (0x00002000)
ファイルまたはディレクトリは、コンテンツ インデックス作成サービスによってインデックスを作成されません。
FILE_ATTRIBUTE_ENCRYPTED
16384 (0x00004000)
暗号化されたファイルまたはディレクトリ。 ファイルの場合、ファイル内のすべてのデータ ストリームが暗号化されます。 ディレクトリの場合、暗号化は新しく作成されたファイルとサブディレクトリの既定値です。
FILE_ATTRIBUTE_INTEGRITY_STREAM
32768 (0x00008000)
ディレクトリまたはユーザー データ ストリームは、整合性で構成されます (ReFS ボリュームでのみサポートされます)。 通常のディレクトリ一覧には含まれません。 ファイルの名前が変更された場合、整合性設定はファイルと共に保持されます。 ファイルがコピーされた場合、ソース ファイルまたはコピー先ディレクトリに整合性が設定されている場合、コピー先ファイルに整合性が設定されます。
Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP:このフラグは、Windows Server 2012するまでサポートされません。
FILE_ATTRIBUTE_VIRTUAL
65536 (0x00010000)
この値は、システムで使用するために予約されています。
FILE_ATTRIBUTE_NO_SCRUB_DATA
131072 (0x00020000)
バックグラウンド データ整合性スキャナー (AKA スクラバー) によって読み取られないユーザー データ ストリーム。 ディレクトリに設定すると、継承のみが提供されます。 このフラグは、記憶域スペース ボリュームと ReFS ボリュームでのみサポートされます。 通常のディレクトリ一覧には含まれません。
Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP:このフラグは、Windows 8してWindows Server 2012するまでサポートされません。
FILE_ATTRIBUTE_EA
262144 (0x00040000)
拡張属性を持つファイルまたはディレクトリ。

大事な: この定数は、内部使用専用です。
FILE_ATTRIBUTE_PINNED
524288 (0x00080000)
この属性は、アクティブにアクセスされていない場合でも、ファイルまたはディレクトリを完全にローカルに保持する必要があることをユーザーの意図で示します。 この属性は、階層ストレージ管理ソフトウェアで使用するためのものです。
FILE_ATTRIBUTE_UNPINNED
1048576 (0x00100000)
この属性は、アクティブにアクセスされている場合を除き、ファイルまたはディレクトリをローカルに完全に存在させないことを示します。 この属性は、階層ストレージ管理ソフトウェアで使用するためのものです。
FILE_ATTRIBUTE_RECALL_ON_OPEN
262144 (0x00040000)
この属性は、ディレクトリ列挙クラス (FILE_DIRECTORY_INFORMATION、FILE_BOTH_DIR_INFORMATIONなど) にのみ表示されます。 この属性を設定すると、ファイルまたはディレクトリにローカル システム上の物理的な表現がないことを意味します。項目が仮想です。 アイテムを開くと、通常よりもコストが高くなります。たとえば、少なくとも一部がリモート ストアからフェッチされます。
FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS
4194304 (0x00400000)
この属性を設定すると、ファイルまたはディレクトリが完全にローカルに存在しないことを意味します。 ファイルの場合、すべてのデータがローカル ストレージ上に存在するわけではないことを意味します (たとえば、リモート ストレージ内の一部のデータが疎である可能性があります)。 ディレクトリの場合、ディレクトリの内容の一部が別の場所から仮想化されていることを意味します。 ファイルの読み取り/ディレクトリの列挙は通常よりもコストが高くなります。たとえば、少なくとも一部のファイル/ディレクトリコンテンツがリモートストアからフェッチされます。 このビットを設定できるのは、カーネル モードの呼び出し元だけです。

180000 ~ 189999高度範囲 (FSFilter HSM 読み込み順序グループ) 未満のファイル システム ミニ フィルターでは、この属性が設定されているファイルに対して、対象となるキャッシュされた読み取りまたは書き込みを発行しないでください。 これにより、キャッシュの汚染やファイルの破損の可能性があります。 詳細については、「プレースホルダーの 処理」を参照してください。

必要条件

要件
サポートされている最小のクライアント Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 [デスクトップ アプリのみ]
ヘッダー WinNT.h (Windows.h を含む)

こちらもご覧ください

圧縮属性

ファイルの作成と開き

CreateFile

CreateFileTransacted

GetFileAttributes

GetFileAttributesEx

GetFileAttributesTransacted

GetFileInformationByHandle

GetFileInformationByHandleEx

SetFileAttributes

SetFileAttributesTransacted

SetFileInformationByHandle