# FSPathInfo

## 定義

    #define FS_ATTRIBUTE_IS_DIRECTORY   0x00000100UL
    #define FS_ATTRIBUTE_IS_PROTECTED   0x00000200UL
    #define FS_ATTRIBUTE_IS_OFFLINE     0x00000400UL

    #define FS_ATTRIBUTE_DOS_MASK       0x000000FFUL
    #define FS_ATTRIBUTE_DOS_READONLY   0x00000001UL
    #define FS_ATTRIBUTE_DOS_HIDDEN     0x00000002UL
    #define FS_ATTRIBUTE_DOS_SYSTEM     0x00000004UL
    #define FS_ATTRIBUTE_DOS_VOLUME     0x00000008UL
    #define FS_ATTRIBUTE_DOS_DIRECTORY  0x00000010UL
    #define FS_ATTRIBUTE_DOS_ARCHIVE    0x00000020UL

    typedef struct FSPathInfo
    {
        u32         attributes;
        FSDateTime  ctime;
        FSDateTime  mtime;
        FSDateTime  atime;
        u32         filesize;
        u32         id;
    }
    FSPathInfo;

## 説明

`FS_GetPathInfo()` で取得できるエントリ情報をあらわす構造体です。
各メンバの内容は以下の通りです。

attributes

エントリの属性です。
FS_ATTRIBUTE_*であらわされる各属性の組み合わせになります。

FS_ATTRIBUTE_IS_DIRECTORY | エントリがディレクトリであることを示します。
FS_ATTRIBUTE_IS_PROTECTED | エントリの属するアーカイブ全体がハードウェアレベルで書き込み禁止状態であることを示します。 このフラグは、たとえばROMアーカイブやSDカードアーカイブなどで有効になっている場合があります。
FS_ATTRIBUTE_IS_OFFLINE | エントリの指すファイルが現在の動作環境ではアクセスできない状態にあることを示します。 このフラグは、NITRO環境で動作しているプログラムがTWL専用ファイルの情報を問い合わせたときに返されます。 (TWL専用ファイルの指定についてはmakerom.TWLの"Put"パラメータに関する説明を参照してください)
以下はFATフォーマット準拠のアーカイブでのみ有効な属性です。
FS_ATTRIBUTE_DOS_READONLY | エントリが読み込み専用であることを示します。
FS_ATTRIBUTE_DOS_HIDDEN | エントリが隠しファイルであることを示します。
FS_ATTRIBUTE_DOS_SYSTEM | エントリがシステムファイルであることを示します。
FS_ATTRIBUTE_DOS_VOLUME | エントリがボリュームラベルであることを示します。
FS_ATTRIBUTE_DOS_DIRECTORY | エントリがディレクトリであることを示します。FS_ATTRIBUTE_IS_DIRECTORYと同様です。
FS_ATTRIBUTE_DOS_ARCHIVE | エントリがアーカイブファイルであることを示します。

ctime | FSDateTime型で表現されるエントリ生成時刻です。 時刻情報が有効でない場合は全てのメンバが0になります。
mtime | FSDateTime型で表現されるエントリ最終更新時刻です。 時刻情報が有効でない場合は全てのメンバが0になります。
atime | FSDateTime型で表現されるエントリ最終アクセス時刻です。 時刻情報が有効でない場合は全てのメンバが0になります。
filesize | ファイルサイズです。 エントリがファイルである場合にのみ有効です。
id | ファイルまたはディレクトリのIDです。 得られた値は `FS_OpenFileFast()` などに使用することが出来ます。 NANDアーカイブなど、ファイルIDやディレクトリIDをサポートしていない場合は常にFS_INVALID_FILE_IDとなります。

## 参照

`FS_GetPathInfo`

## 履歴

2009/01/08 TWL専用ファイルに関する説明を追記
2008/12/08 FS_ATTRIBUTE_IS_OFFLINEフラグを追加
2008/06/13 FS_ATTRIBUTE_IS_PROTECTEDフラグを追加
2007/12/13 初版