X-Git-Url: http://cloudbase.mooo.com/gitweb/z180-stamp.git/blobdiff_plain/5366852335044c1e68a5c32548d3051cc943552f..7b78a5a287827db9e9b16286f3604aef69b37c5c:/fatfs/doc/ja/readdir.html diff --git a/fatfs/doc/ja/readdir.html b/fatfs/doc/ja/readdir.html index bd1c34e..fc8fc5c 100644 --- a/fatfs/doc/ja/readdir.html +++ b/fatfs/doc/ja/readdir.html @@ -1,7 +1,7 @@ - + @@ -13,28 +13,28 @@

f_readdir

-

ƒfƒBƒŒƒNƒgƒŠ€–Ú‚ð“ǂݏo‚µ‚Ü‚·B

+

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

 FRESULT f_readdir (
-  DIR* dp,      /* [IN] ƒfƒBƒŒƒNƒgƒŠEƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^ */
-  FILINFO* fno  /* [OUT] ƒtƒ@ƒCƒ‹î•ñ\‘¢‘̂ւ̃|ƒCƒ“ƒ^ */
+  DIR* dp,      /* [IN] ディレクトリ ブジェクト構造体へのポインタ */
+  FILINFO* fno  /* [OUT] ファイル情報構造体へのポインタ */
 );
 
-

ˆø”

+

引数

dp
-
—LŒø‚ȃfƒBƒŒƒNƒgƒŠEƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B
+
有効なディレクトリ オブジェクト構造体へのポインタを指定します。
fno
-
“ǂݏo‚µ‚½ƒfƒBƒŒƒNƒgƒŠ€–Ú‚ðŠi”[‚·‚éƒtƒ@ƒCƒ‹î•ñ\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B
+
読み出したディレクトリ項目を格納するファイル情報構造体へのポインタを指定します。
-

–ß‚è’l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -48,37 +48,37 @@ FRESULT f_readdir (

-

‰ðà

-

ƒfƒBƒŒƒNƒgƒŠ‚̍€–Ú(ƒtƒ@ƒCƒ‹‚ƃfƒBƒŒƒNƒgƒŠ)‚ð‡ŽŸ“ǂݏo‚µ‚Ü‚·B‚±‚̊֐”‚ðŒJ‚è•Ô‚µŽÀs‚·‚邱‚Æ‚É‚æ‚è‚»‚̃fƒBƒŒƒNƒgƒŠ‚Ì‘S‚Ă̍€–Ú‚ð“ǂݏo‚·‚±‚Æ‚ª‚Å‚«‚Ü‚·B“¾‚ç‚ê‚éƒtƒ@ƒCƒ‹î•ñ‚̏ڍׂɂ‚¢‚Ä‚Í FILINFO\‘¢‘Ì‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B‘S‚Ă̍€–Ú‚ª“ǂݏo‚³‚êA“ǂݏo‚·€–Ú‚ª‚à‚¤–³‚¢‚Æ‚«‚́Afname[]ƒƒ“ƒo‚Ƀkƒ‹•¶Žš—ñ‚ª•Ô‚³‚ê‚Ü‚·Bfno‚Ƀkƒ‹Eƒ|ƒCƒ“ƒ^‚ðŽw’è‚·‚é‚ƁA‚»‚̃fƒBƒŒƒNƒgƒŠ‚̃Š[ƒhEƒCƒ“ƒfƒbƒNƒX‚ðæ“ª‚ÉŠª‚«–ß‚µ‚Ü‚·B‚Ü‚½A‚±‚̊֐”‚ÍŽŸ‚ÉŽ¦‚·‚悤‚ÉŠÖ˜A‚·‚é\¬ƒIƒvƒVƒ‡ƒ“‚É‚æ‚è“®ì‚ª•Ï‚í‚è‚Ü‚·B

-

ƒhƒbƒgEƒGƒ“ƒgƒŠ("."A"..")‚́A‘Š‘΃pƒX‚ª—LŒø‚È‚Æ‚«(_FS_RPATH >= 1)‚ɂ̂ݏo—Í‚ÉŒ»‚ê‚Ü‚·B

-

LFN‹@”\‚ª—LŒø‚ÈŽž‚́A‚±‚̊֐”‚̌Ăяo‚µ‚ɐ旧‚Á‚ÄFILINFO\‘¢‘Ì‚Ìlfname‚Ælfsize‚ª—LŒø‚È’l‚ŏ‰Šú‰»‚³‚ê‚Ä‚¢‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñBlfname‚ÍLFN‚ðŠi”[‚·‚éƒoƒbƒtƒ@‚ŁAlfsize‚Í‚»‚̃oƒbƒtƒ@‚Ì—v‘f”‚Å‚·BLFN‚ð“ǂݏo‚·•K—v‚ª‚È‚¢‚Æ‚«‚́Alfname‚Ƀkƒ‹Eƒ|ƒCƒ“ƒ^‚ðƒZƒbƒg‚µ‚Ä‚­‚¾‚³‚¢BŽŸ‚ÌðŒ‚Éˆê‚‚łàŠY“–‚·‚éê‡‚́ALFNŠi”[ƒoƒbƒtƒ@‚Ƀkƒ‹•¶Žš—ñ‚ª•Ô‚³‚ê‚Ü‚·B

+

解説

+

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

+

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

+

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

-

‚Ü‚½AƒfƒBƒŒƒNƒgƒŠ€–Ú‚ÉLFNî•ñ‚ª‘¶Ý‚µ‚È‚¢ê‡‚́Afname[]‚ɉp¬•¶Žš‚ªŠÜ‚Ü‚ê‚éê‡‚ª‚ ‚è‚Ü‚·B

+

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

-

‘Ήžî•ñ

-

_FS_MINIMIZE <= 1‚Ì‚Æ‚«‚ÉŽg—p‰Â”\‚Å‚·B

+

対応情報

+

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

-

Žg—p—á

+

使用例

 FRESULT scan_files (
-    char* path        /* ŠJŽnƒm[ƒh (ƒ[ƒNƒGƒŠƒA‚Æ‚µ‚Ä‚àŽg—p) */
+    char* path        /* 開始ノード (ワークエリアとしても使用) */
 )
 {
     FRESULT res;
     FILINFO fno;
     DIR dir;
     int i;
-    char *fn;   /* ”ñUnicode\¬‚ð‘z’è */
+    char *fn;   /* 非Unicode構成を想定 */
 #if _USE_LFN
     static char lfn[_MAX_LFN + 1];
     fno.lfname = lfn;
@@ -86,24 +86,24 @@ FRESULT scan_files (
 #endif
 
 
-    res = f_opendir(&dir, path);                       /* ƒfƒBƒŒƒNƒgƒŠ‚ðŠJ‚­ */
+    res = f_opendir(&dir, path);                       /* ディレクトリを開く */
     if (res == FR_OK) {
         i = strlen(path);
         for (;;) {
-            res = f_readdir(&dir, &fno);                   /* ƒfƒBƒŒƒNƒgƒŠ€–Ú‚ð1ŒÂ“ǂݏo‚· */
-            if (res != FR_OK || fno.fname[0] == 0) break;  /* ƒGƒ‰[‚Ü‚½‚͍€–Ú–³‚µ‚Ì‚Æ‚«‚Í”²‚¯‚é */
-            if (fno.fname[0] == '.') continue;             /* ƒhƒbƒgƒGƒ“ƒgƒŠ‚Í–³Ž‹ */
+            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) {                    /* ƒfƒBƒŒƒNƒgƒŠ */
+            if (fno.fattrib & AM_DIR) {                    /* ディレクトリ */
                 sprintf(&path[i], "/%s", fn);
                 res = scan_files(path);
-                if (res != FR_OK) break;
                 path[i] = 0;
-            } else {                                       /* ƒtƒ@ƒCƒ‹ */
+                if (res != FR_OK) break;
+            } else {                                       /* ファイル */
                 printf("%s/%s\n", path, fn);
             }
         }
@@ -117,10 +117,10 @@ FRESULT scan_files (
 
 
 
-

ŽQÆ

+

参照

f_opendir, f_closedir, f_stat, FILINFO, DIR

-

–ß‚é

+

戻る