FSDirectoryEntryInfo, FSDirectoryEntryInfo

# FSDirectoryEntryInfo(W)

## 定義

    #define	FS_ENTRY_SHORTNAME_MAX      16
    #define	FS_ENTRY_LONGNAME_MAX	    260

    typedef struct FSDirectoryEntryInfo
    {
        char        shortname[FS_ENTRY_SHORTNAME_MAX];
        u32         shortname_length;
        char        longname[FS_ENTRY_LONGNAME_MAX];
        u32         longname_length;
        u32         attributes;
        FSDateTime  atime;
        FSDateTime  mtime;
        FSDateTime  ctime;
        u32         filesize;
        u32         id;
    }
    FSDirectoryEntryInfo;

    typedef struct FSDirectoryEntryInfoW
    {
        u32         attributes;
        FSDateTime  atime;
        FSDateTime  mtime;
        FSDateTime  ctime;
        u32         filesize;
        u32         id;
        u32         shortname_length;
        u32         longname_length;
        char        shortname[FS_ENTRY_SHORTNAME_MAX];
        u16         longname[FS_ENTRY_LONGNAME_MAX];
    }
    FSDirectoryEntryInfoW;

## 説明

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

shortname | いわゆるFATフォーマットの8.3形式におけるエントリ名です。エントリが短縮された別名を持つ場合に限り、その文字列が格納されます。 そうでない場合は空文字列となります。 このフィールドの文字コードはファイルの作成環境に依存し、TWLで作成したファイルであればShift_JISになります。
shortname_length | shortnameの有効文字数です。 shortnameは必ず終端に'\0'が付与されますが、利便性のために用意されています。
longname | エントリ名です。 FSDirectoryEntryInfo構造体ではShift_JIS、FSDirectoryEntryInfoW構造体ではUTF16-LEとして格納されます。
longname_length | longnameの有効文字数です。 longnameは必ず終端にL'\0'が付与されますが、利便性のために用意されています。
attributes | エントリの属性です。各フラグの意味はFSPathInfoのattributesと同じです。
mtime | FSDateTime型で表現されるエントリ最終更新時刻です。 時刻情報が有効でない場合は全てのメンバが0になります。
filesize | ファイルサイズです。 エントリがファイルである場合にのみ有効です。
id | ファイルまたはディレクトリのIDです。 得られた値は `FS_OpenFileFast()` などに使用することが出来ます。 NANDアーカイブなど、ファイルIDやディレクトリIDをサポートしていない場合は常にFS_INVALID_FILE_IDとなります。

## 参照

`FS_CreateFile FS_CreateDirectory`

## 履歴

2008/09/02 Unicode版の構造体について追記。
2008/06/13 attributesフラグの説明をFSPathInfoと統合しリンク先を追加
2007/09/18 初版