SDMMCファイルクラス(Fileクラス)

SDカードやMMCカードをファイルクラスで操作できるライブラリです。
使用する場合は、ライブラリとしてインポートして、#include <sdmmc.h>を記述してください。
また、ファイルのオブジェクトはSDMMC.openか、file.openNextFileで返されるものを使用してください。サンプルを参照してください。

close

概要 ファイルを閉じる。ファイルオブジェクトを使い終わるときに、必ず呼び出してください。
文法 file.close
パラメータ なし
戻り値 なし

available

概要 読み出せるデータがあるかどうか調べます。
文法 bool file.available()
パラメータ なし
戻り値 データがあればtrue、なければfalseを返します。

read

概要 ファイルから1バイト読み込みます。
文法 int file.read()
パラメータ なし
戻り値 データがあればデータを返します。ファイルの終わりに達していたら-1を返します。

write

概要 ファイルにデータや文字列を書き込みます。
文法 file.write(data)
file.write(*buf, len)
パラメータ data: データや文字列(char*)
buf: 書き込みデータ(unsigned char*)が格納されたバッファ
len: 書き込みたい長さ
戻り値 なし

flush

概要 未書き込みのデータをファイルに書き込みます。
文法 file.flush()
パラメータ なし
戻り値 なし

position

概要 ファイルからの読み出し位置を取得します。
文法 unsigned long file.position()
パラメータ なし
戻り値 ファイルの先頭から数えた読み出し位置(バイト単位)。

seek

概要 ファイルからの読み出し位置を移動します。
文法 bool file.seek(unsigned long pos)
パラメータ pos: ファイルの先頭から数えた読み出し位置(バイト単位)
戻り値 成功したらtrue、失敗したらfalseを返す。

print

概要 ファイルに数値や文字列を書き込みます。
文法 file.print(data)
file.print(data, BASE)
パラメータ data: 文字列や数値
BASE: 基数(BYTE、BIN、DEC、HEX、OCT)
戻り値 なし

println

概要 ファイルに数値や文字列を改行付きで書き込みます。
文法 file.println(data)
file.println(data, BASE)
パラメータ data: 文字列や数値
BASE: 基数(BYTE、BIN、DEC、HEX、OCT)
戻り値 なし

size

概要 ファイルのサイズを調べます。
文法 unsigned longfile.size()
パラメータ なし
戻り値 ファイルのサイズ(バイト単位)

name

概要 開いているファイルの名前を調べます。
文法 char* file.name()
パラメータ なし
戻り値 ファイル名を表す文字列

isDirectory

概要 開いているファイルオブジェクトが、ファイルかディレクトリか調べます。
文法 bool file.isDirectory()
パラメータ なし
戻り値 ディレクトリならtrue、ファイルならfalseを返します。

openNextFile

概要 ディレクトリオブジェクトの場合、次のファイルオブジェクトを返します。
文法 File file.openNextFile()
パラメータ なし
戻り値 次に該当するファイルオブジェクト。該当がなければfalseとして評価されるファイルオブジェクトを返します。

rewindDirectory

概要 ディレクトリの検索を最初に戻します。
文法 void file.rewindDirectory()
パラメータ なし
戻り値 なし


サンプルプログラム

SAKURAボードの裏面にあるマイクロSDにアクセスして、書き込み、読み込み、サイズ調査、削除など、一連の動作を試すサンプルです。

#include <rxduino.h>
#include <sdmmc.h>

SDMMC mySD;
void setup(){
    pinMode(PIN_LED0, OUTPUT);
    Serial.begin(38400, SCI_AUTO); //Press any key to start communication
    mySD.begin();
}
    
void loop(){
    digitalWrite(PIN_LED0, 1);
    File myFile = mySD.open("sample.txt", FILE_WRITE);

    if(myFile == false){
        Serial.println("Fail to access MMC");
        digitalWrite(PIN_LED0, 0);
        while(1){
        }
    }

    //Write
    Serial.println("Success to access MMC");
    myFile.println("Hello, my MMC");
    myFile.close();
    
    //Read
    myFile = mySD.open("sample.txt", FILE_READ);
    while(myFile.available()){
        Serial.print((char)myFile.read());
        delay(50);
    }
    
    //Size
    Serial.print(myFile.size());
    Serial.println();
    myFile.close();
    digitalWrite(PIN_LED0, 0);
    
    Serial.println("Remove the file? y/n");
    while(!Serial.available());
    char c = Serial.read();

    //Remove
    if(c == 'y'){
        mySD.remove("sample.txt");
        Serial.println("sample.txt has been removed");
    }
    delay(400);
}

桜ライブラリ

春ライブラリ

めいど by がじぇっとるねさすプロジェクト
Contents are CC BY-SA 3.0