From efa13a879df590ce0043a5b4f97597484bf264e1 Mon Sep 17 00:00:00 2001 From: inmarket Date: Wed, 13 Aug 2014 15:48:16 +1000 Subject: Move 3rd Party source to a new directory. Rationalise Fatfs code and fix a couple of configuration issues. --- 3rdparty/fatfs-0.10b/doc/ja/readdir.html | 126 +++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 3rdparty/fatfs-0.10b/doc/ja/readdir.html (limited to '3rdparty/fatfs-0.10b/doc/ja/readdir.html') diff --git a/3rdparty/fatfs-0.10b/doc/ja/readdir.html b/3rdparty/fatfs-0.10b/doc/ja/readdir.html new file mode 100644 index 00000000..d516b355 --- /dev/null +++ b/3rdparty/fatfs-0.10b/doc/ja/readdir.html @@ -0,0 +1,126 @@ + + + + + + + + +FatFs - f_readdir + + + + +
+

f_readdir

+

ディレクトリ項目を読み出します。

+
+FRESULT f_readdir (
+  DIR* dp,      /* [IN] ディレクトリ・ブジェクト構造体へのポインタ */
+  FILINFO* fno  /* [OUT] ファイル情報構造体へのポインタ */
+);
+
+
+ +
+

引数

+
+
dp
+
有効なディレクトリ・オブジェクト構造体へのポインタを指定します。
+
fno
+
読み出したディレクトリ項目を格納するファイル情報構造体へのポインタを指定します。
+
+
+ + +
+

戻り値

+

+FR_OK, +FR_DISK_ERR, +FR_INT_ERR, +FR_NOT_READY, +FR_INVALID_OBJECT, +FR_TIMEOUT, +FR_NOT_ENOUGH_CORE +

+
+ + +
+

解説

+

ディレクトリの項目(ファイルとディレクトリ)を順次読み出します。この関数を繰り返し実行することによりそのディレクトリの全ての項目を読み出すことができます。得られるファイル情報の詳細については FILINFO構造体を参照してください。全ての項目が読み出され、読み出す項目がもう無いときは、fname[]メンバにヌル文字列が返されます。fnoにヌル・ポインタを指定すると、そのディレクトリのリード・インデックスを先頭に巻き戻します。また、この関数は次に示すように関連する構成オプションにより動作が変わります。

+

ドット・エントリ("."、"..")は、相対パスが有効なとき(_FS_RPATH >= 1)にのみ出力に現れます。

+

LFN機能が有効な時は、この関数の呼び出しに先立ってFILINFO構造体のlfnamelfsizeが有効な値で初期化されていなければなりません。lfnameはLFNを格納するバッファで、lfsizeはそのバッファの要素数です。LFNを読み出す必要がないときは、lfnameにヌル・ポインタをセットしてください。次の条件に一つでも該当する場合は、LFN格納バッファにヌル文字列が返されます。

+ +

また、ディレクトリ項目にLFN情報が存在しない場合は、fname[]に英小文字が含まれる場合があります。

+
+ + +
+

対応情報

+

_FS_MINIMIZE <= 1のときに使用可能です。

+
+ + +
+

使用例

+
+FRESULT scan_files (
+    char* path        /* 開始ノード (ワークエリアとしても使用) */
+)
+{
+    FRESULT res;
+    FILINFO fno;
+    DIR dir;
+    int i;
+    char *fn;   /* 非Unicode構成を想定 */
+#if _USE_LFN
+    static char lfn[_MAX_LFN + 1];
+    fno.lfname = lfn;
+    fno.lfsize = sizeof lfn;
+#endif
+
+
+    res = f_opendir(&dir, path);                       /* ディレクトリを開く */
+    if (res == FR_OK) {
+        i = strlen(path);
+        for (;;) {
+            res = f_readdir(&dir, &fno);                   /* ディレクトリ項目を1個読み出す */
+            if (res != FR_OK || fno.fname[0] == 0) break;  /* エラーまたは項目無しのときは抜ける */
+            if (fno.fname[0] == '.') continue;             /* ドットエントリは無視 */
+#if _USE_LFN
+            fn = *fno.lfname ? fno.lfname : fno.fname;
+#else
+            fn = fno.fname;
+#endif
+            if (fno.fattrib & AM_DIR) {                    /* ディレクトリ */
+                sprintf(&path[i], "/%s", fn);
+                res = scan_files(path);
+                if (res != FR_OK) break;
+                path[i] = 0;
+            } else {                                       /* ファイル */
+                printf("%s/%s\n", path, fn);
+            }
+        }
+        f_closedir(&dir);
+    }
+
+    return res;
+}
+
+
+ + +
+

参照

+

f_opendir, f_closedir, f_stat, FILINFO, DIR

+
+ +

戻る

+ + -- cgit v1.2.3