File::openNextFile()

名称

File::openNextFile()

説明

次のファイルもしくはフォルダをオープンする。

書式

File File::openNextFile(uint8_t mode);

引数

modeオープンするファイルのモード。以下の2種類がある(オプション)。
FILE_READ: 読み込み専用。ファイルの最初から開始(読み込み)される。
FILE_WRITE: 読み書きモード。ファイルの最後から開始される。

戻り値

オープンしたファイルを参照するファイルオブジェクト。

(訳者註)オリジナルのリファレンスはcharを返すと書いているが、ソースコードや例を見る限り、Fileオブジェクトを返却している。

使用例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <SD.h>

File root;
void setup()
{
  Serial.begin(9600);
  pinMode(10, OUTPUT);
  SD.begin(10);
  root = SD.open("/");
  printDirectory(root, 0);
  delay(2000);
  Serial.println();
  Serial.println("Rewinding, and repeating below:" );
  Serial.println();
  delay(2000);
  root.rewindDirectory();
  printDirectory(root, 0);
  root.close();
}

void loop()
{
  // nothing happens after setup finishes.
}

void printDirectory(File dir, int numTabs)
{
  while (true)
  {
    File entry = dir.openNextFile();
    if (! entry)
    {
      if (numTabs == 0)
        Serial.println("** Done **");
      return;
    }
    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
    {
      Serial.print("\t\t");
      Serial.println(entry.size(), DEC);
    }
    entry.close();
  }
}

オリジナルのページ

https://www.arduino.cc/reference/en/libraries/sd/opennextfile/

最終更新日

January 7, 2024

inserted by FC2 system