这里会显示出您选择的修订版和当前版本之间的差别。
| — |
en:arduino:libraries:fileopennextfile [2016/12/25 22:15] (当前版本) |
||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | [[en:arduino:libraries:sd|SD]] : File class | ||
| + | ====== openNextFile() ====== | ||
| + | |||
| + | Reports the next file or folder in a directory. | ||
| + | ===== Syntax ===== | ||
| + | |||
| + | file.openNextFile() | ||
| + | ===== Parameters ===== | ||
| + | |||
| + | file: an instance of the File class that is a directory | ||
| + | ===== Returns ===== | ||
| + | |||
| + | char : the next file or folder in the path | ||
| + | ===== Example ===== | ||
| + | <code cpp> | ||
| + | #include <SD.h> | ||
| + | |||
| + | File root; | ||
| + | |||
| + | void setup() | ||
| + | { | ||
| + | Serial.begin(9600); | ||
| + | pinMode(10, OUTPUT); | ||
| + | |||
| + | SD.begin(10); | ||
| + | |||
| + | root = SD.open("/"); | ||
| + | |||
| + | printDirectory(root, 0); | ||
| + | |||
| + | Serial.println("done!"); | ||
| + | } | ||
| + | |||
| + | void loop() | ||
| + | { | ||
| + | // nothing happens after setup finishes. | ||
| + | } | ||
| + | |||
| + | void printDirectory(File dir, int numTabs) { | ||
| + | while(true) { | ||
| + | |||
| + | File entry = dir.openNextFile(); | ||
| + | if (! entry) { | ||
| + | // no more files | ||
| + | Serial.println("**nomorefiles**"); | ||
| + | } | ||
| + | for (uint8_t i=0; i<numTabs; i++) { | ||
| + | Serial.print('\t'); | ||
| + | } | ||
| + | Serial.print(entry.name()); | ||
| + | if (entry.isDirectory()) { | ||
| + | Serial.println("/"); | ||
| + | printDirectory(entry, numTabs+1); | ||
| + | } else { | ||
| + | // files have sizes, directories do not | ||
| + | Serial.print("\t\t"); | ||
| + | Serial.println(entry.size(), DEC); | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </code> | ||
| + | ===== See Also ===== | ||
| + | |||
| + | * isDirectory() | ||
| + | * rewindDirectory() | ||
| + | [[en:arduino:libraries|Reference Home]] | ||