Class SdFatFile

Description

Defines a class of SD FAT File.

Syntax

class SdFatFile

Members

Public Constructors

SdFatFile::SdFatFile

Constructs a SdFatFile object

SdFatFile::~SdFatFile

Destructs a SdFatFile object

Public Methods

SdFatFile::write

Write 1 byte/bytes to file

SdFatFile::read

Read 1 byte/bytes from the file

SdFatFile::peek

Read 1 byte from file without move curser

SdFatFile::available

Check if the cursor is at EOF (End-Of-File)

SdFatFile::bool

Check if file is opened

SdFatFile::seek

Change cursor to a specific position

SdFatFile::close

Close file


SdFatFile::write

Description

Write 1 byte or bytes to the file.

Syntax

size_t SdFatFile::write(uint8_t c);
size_t SdFatFile::write(const uint8_t *buf, size_t size);

Parameters

c : The character to be written.

buf : The buffer to be written.

size : The length of buffer to be written.

Returns

The function returns the number of byte count that has been successfully written to the file.

Example Code

NA.

Notes and Warnings

Include “SdFatFile.h” to use the class function.


SdFatFile:: read

Description

Read 1 byte or bytes from the file.

Syntax

int SdFatFile::read(void);
int SdFatFile::read(void *buf, uint16_t nbyte);

Parameters

buf: The buffer to store the content.

nbyte: The buffer size. (Or can be regarded as the desired length to read).

Returns

The function returns a read character or the read size of the buffer.

Example Code

  1. #include “FatFs_SD.h”

  2. char dirname[] = “testdir”;

  3. char filename[] = “test.txt”;

  4. char write_content[] = “hello world!”;

  5. FatFsSD fs;

  6. void setup() {

  7. char buf[128];

  8. char absolute_filename[128];

  9. fs.begin();

  10. sprintf(absolute_filename, “%s%s”, fs.getRootPath(), dirname);

  11. fs.mkdir(absolute_filename);

  12. printf(“create dir at \”%s"rn”, absolute_filename);

  13. sprintf(absolute_filename, “%s%s/%s”, fs.getRootPath(), dirname, filename);

  14. SdFatFile file = fs.open(absolute_filename);

  15. file.println(write_content);

  16. file.close();

  17. printf(“create file at \”%s"rn”, absolute_filename);

  18. printf(“read back from \”%s"rn”, absolute_filename);

  19. file = fs.open(absolute_filename);

  20. memset(buf, 0, sizeof(buf));

  21. file.read(buf, sizeof(buf));

  22. file.close();

  23. printf(“==== content ====rn”);

  24. printf(“%s”, buf);

  25. printf(“==== end ====rn”);

  26. fs.end();

  27. }

  28. void loop() {

  29. delay(1000);

  30. }

Example: create_folder;
This example shows how to create a folder and open a file under it.
  1. #include “FatFs_SD.h”

  2. char filename[] = “test.txt”;

  3. char write_content[] = “hello world!”;

  4. FatFsSD fs;

  5. void setup() {

  6. char buf[128];

  7. char absolute_filename[128];

  8. fs.begin();

  9. printf(“write something to \”%s"rn”, filename);

  10. sprintf(absolute_filename, “%s%s”, fs.getRootPath(), filename);

  11. SdFatFile file = fs.open(absolute_filename);

  12. file.println(write_content);

  13. file.close();

  14. printf(“write finishrnrn”);

  15. printf(“read back from \”%s"rn”, filename);

  16. file = fs.open(absolute_filename);

  17. memset(buf, 0, sizeof(buf));

  18. file.read(buf, sizeof(buf));

  19. file.close();

  20. printf(“==== content ====rn”);

  21. printf(“%s”, buf);

  22. printf(“==== end ====rn”);

  23. fs.end();

  24. }

  25. void loop() {

  26. delay(1000);

  27. }

Example: file_read_write;
This example shows how to open/close files and perform read/write to it.

Notes and Warnings

Include “SdFatFile.h” to use the class function.


SdFatFile:: peek

Description

Read one byte from the file without moving the curser.

Syntax

int SdFatFile::peek(void);

Parameters

The function requires no input parameter.

Returns

The function returns the read character as an integer number.

Example Code

NA

Notes and Warnings

Include “SdFatFile.h” to use the class function.


SdFatFile:: available

Description

Check if the cursor is at EOF.

Syntax

int SdFatFile::available(void);

Parameters

The function requires no input parameter.

Returns

The function returns 0 if the cursor is at EOF, else returns “1”.

Example Code

NA

Notes and Warnings

Include “SdFatFile.h” to use the class function.


SdFatFile:: flush

Description

It is a nop. This is an inherited function from class Stream. And it does not affect SD File.

Syntax

void SdFatFile::flush(void);

Parameters

The function requires no input parameter.

Returns

The function returns nothing.

Example Code

NA

Notes and Warnings

Include “SdFatFile.h” to use the class function.


SdFatFile:: seek

Description

Change cursor to a specific position.

Syntax

int SdFatFile::seek(uint32_t pos);

Parameters

pos: The desired position.

Returns

The function returns 0 if success otherwise returns a negative value.

Example Code

NA

Notes and Warnings

Include “SdFatFile.h” in order to use the class function.


SdFatFile:: close

Description

Close file.

Syntax

int SdFatFile::close(void);

Parameters

The function requires no input parameter.

Returns

The function returns 0 if runs successfully otherwise it returns a negative value.

Example Code

Example: last_modified_time;

The example shows how to get and set last modified time of a file.

Example: create_folder;

This example shows how to create a folder and open a file under it.

the details of the code can be found in the section of SdFatFile::read.

Example: file_read_write;

This example shows how to open/close files and perform read/write to

it. The details of the code can be found in the section of SdFatFile::read.

  1. #include <FatFs_SD.h>

  2. FatFsSD fs;

  3. char filename[] = “test.txt”;

  4. void setup() {

  5. char absolute_filename[128];

  6. uint16_t year = 2021;

  7. uint16_t month = 4;

  8. uint16_t date = 4;

  9. uint16_t hour = 12;

  10. uint16_t minute = 12;

  11. uint16_t second = 12;

  12. fs.begin();

  13. sprintf(absolute_filename, “%s%s”, fs.getRootPath(), filename);

  14. SdFatFile file = fs.open(absolute_filename);

  15. file.close();

  16. fs.setLastModTime(absolute_filename, year, month, date, hour, minute, second);

  17. fs.getLastModTime(absolute_filename, &year, &month, &date, &hour, &minute, &second);

  18. printf(“filename:"%s"rn”, absolute_filename);

  19. printf(“time mod:%04d/%02d/%02d %02d:%02d:%02drn”, year, month, date, hour, minute, second);

  20. fs.end();

  21. }

  22. void loop() {

  23. delay(1000);

  24. }

Notes and Warnings

Include “SdFatFile.h” in order to use the class function.