■file.isDirectory関数
SD:FileClassのfile.isDirectory関数は、現在のファイルがディレクトリかどうかを返します。
ディレクトリ(またはフォルダ)は特別な種類のファイルです。
■使用例
Arduino IDEで使用するfile.isDirectory関数の使い方は以下の通りです。
試しに図1の様にmicroSDカードとArduino UNOを接続し下記プログラムを実行すると、SD.begin関数でmicroカードが存在するか確認し初期化します。
printDirectory関数中のentry.isDirectory関数がtrueなら「/」を、falseならentry.size関数によって取得された「ファイルサイズ」を出力します。
図1:SparkFun microSD Transflash BreakoutとArduinoProMini3.3Vの接続例
※ArduinoUNO等の5V出力マイコンと接続する場合は、
レベルシフタか抵抗の分圧で電圧を3.3Vに下げます。
※ArduinoUNO等の5V出力マイコンと接続する場合は、
レベルシフタか抵抗の分圧で電圧を3.3Vに下げます。
microSDカード | Breakoutボード | ArduinoProMini3.3V |
DAT0 | D0 | MISO |
VSS | GND | GND |
CLK | SCK | SCK |
VDD | Vcc | 3.3V |
CMD | DI | MOSI |
CD/DAT3 | CS | CS/S |
#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() {} //セットアップが完了しても何も起こりません。 void printDirectory(File dir, int numTabs) { while (true) { File entry = dir.openNextFile(); if (! entry) { // ファイルはもうありません。 //Serial.println("**nomorefiles**"); break; } 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); } } }
図1:プログラム例
■構文
file.isDirectory()
■パラメータ
file:Fileクラスのインスタンス(SD.open関数によって返されます)
■戻り値
ブール値
励みになりますのでよければクリック下さい(^o^)/