ESP8266 家庭自动化项目中文版目录
我们来看几个SPIFFS对象:
- begin(开始):安装 fliesystem。需要首先调用并返回 true 表示成功,否则返回 false :
if (SPIFFS.begin())
{
//使用F函数将字符串存储在flash中
//而不是在RAM内存中。这节省了大量的RAM内存
Serial.println(F("File systestem mounted."));
}
else
{
Serial. println(F ("Mounting file system failed."));
}
- info:返回有关整个文件系统的信息,这些信息存储在 FSInfo 结构体中。 FSInfo 结构体具有以下成员变量:
struct FSInfo {
size_t totalBytes;
size_t usedBytes;
size_t blockSize;
size_t pageSize;
size_t maxOpenFiles;
size_t maxPathLength;
};
声明 fs_info 并使用 info 函数填充它将允许我们访问有关 filesystem 的信息:
FSInfo fs_info;
SPIFFS.info(fs_info);
Serial.print("Used bytes: ");
Serial.println(fs_info.usedBytes);
- exists:SPIFFS.exists(path) 返回 true 或 false 如果文件系统中存在指定的文件路径:
if(SPIFFS.exist("/config.json"))
Serial.println(F("File config.json exists."));
提示:路径必须是绝对路径并以斜杠开头
- format:格式化整个文件系统并返回 true 或 false 。可以在 begin 函数之前或之后调用 Format ,根据文件系统大小,它需要几十秒才能完成:
SPIFFS.format();
- open:此函数返回一个File对象,并将文件的绝对路径和打开文件的模式作为参数。 成功时返回true,否则返回false:
SPIFFS.open(path, mode);
File config_file = SPIFFS.open("/config.json", "w");
if (!config_file) {
Serial.println(F("failed opening config.json file."));
}
在前面的代码中,用于打开文件的所选模式是 w(写入)。 使用与ANSI C函数fopen相同的模式:
r |
打开文本文件进行阅读。 流位于文件的开头。 |
r+ | .打开文件进行读写。 流位于文件的开头。 |
w | 将文件截断为零长度或创建文本文件进行写操作,流位于文件的开头。 |
w+ | 打开文件进行读写。 如果文件不存在,则创建该文件; 否则它会被截断,流位于文件的开头。 |
a | 开文件以进行追加(在文件末尾写入)如果不存在则创建文件, 流位于文件的末尾。 |
a+ | 打开文件进行读或者追加(在文末写)。如果文件不存在,则创建该文件。用于读取的初始文件位置位于文件的开头,但输出始终附加到文件的末尾。 |
- remove:从文件系统中删除文件。 它将绝对路径作为参数,并在成功时返回true,否则返回false:
if (SPIFFS.remove("/config.json"))
Serial.println(F("File config.json was removed"));
- rename:重命名文件。采用两个参数,即当前名称和新名称的绝对路径。如果成功则返回true,否则返回false:
if(SPIFFS.rename("/old_file_name.json","/new_file_name.json")
Serial.println(F("File renamed."));