# FS_ReadDirectory[W]

## 構文

    #include <nitro/fs.h>

    BOOL FS_ReadDirectory(FSFile *dir, FSDirectoryEntryInfo *info);
    BOOL FS_ReadDirectoryW(FSFile *file, FSDirectoryEntryInfoW *info);

## 引数

dir | ディレクトリハンドルを保持したFSFile構造体
info | 得られたエントリ情報を格納すべきFSDirectoryEntryInfo構造体またはFSDirectoryEntryInfoW構造体

## 返り値

エントリ情報が正しく取得TRUEを、失敗すればFALSEを返します。
失敗時の詳細なエラーは`FS_GetResultCode()`で取得することができます。

## 説明

ディレクトリのハンドルから、エントリ情報を1個だけ読み進めます。
この関数を呼び出すたびにディレクトリの列挙位置は1個ずつ進んでいき、終端に達すると次からはFALSEを返します。
例えば３つのファイルを含むディレクトリを`FS_OpenDirectory()`で開き、 そのハンドルを使用してこの関数を呼び出すと、３回TRUEを返して４回目以降はFALSEを返します。

エントリ情報のlongnameフィールドをShift_JISで取得したい場合はFS_ReadDirectory()を、 UTF16-LEで取得したい場合はFS_ReadDirectoryW()を使用することができます。 SDカードアーカイブなど、内部がFAT構造のファイルシステムではShift_JISで表現できない文字が使用されている場合があります。

TWL専用ファイルに関するエントリ情報はNITROモードで動作しているときでも取得することができます。実際にファイルへアクセス可能かどうかはattributesフィールドのFS_ATTRIBUTE_IS_OFFLINEフラグを確認することによって判定可能です。

## 注意

- この関数を割り込みハンドラ(IRQモード)から呼び出すことはできません。
  また、割り込みを禁止したままの状態にあると処理が完了しない場合がある点に注意して下さい。

## 参照

`FSFile FSDirectoryEntryInfo
FS_OpenDirectory FS_CloseDirectory`

## 履歴

2009/06/08 TWL専用ファイルの説明へのリンクを追加。
2009/01/08 TWL専用ファイルに関する説明を追記。
2008/09/02 Unicode版の関数について追記。
2007/09/18 初版