参考资料:ESP8266闪存文件系统基本操作 – 太极创客
每一个ESP8266都配有一个闪存,这个闪存很像是一个小硬盘,我们上传的文件就被存放在这个闪存里。这个闪存的全称是Serial Peripheral Interface Flash File System(SPIFFS)。
除了可以存放上传的程序以外,我们还可以将网页文件或者系统配置文件存放在ESP8266的闪存中。
🚀需要的头文件
1 2
| #include <FS.h> #include <SPIFFS.h>
|
🚀格式化闪存系统
1 2 3
| Serial.println("SPIFFS format start"); SPIFFS.format(); Serial.println("SPIFFS format finish");
|
🚀启动闪存文件系统
1 2 3 4 5
| if(SPIFFS.begin()){ Serial.println("SPIFFS Started."); } else { Serial.println("SPIFFS Failed to Start."); }
|
🚀打印目录中的所有的文件名及文件大小
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| void fileInfo(const char *dirName) { File dir = SPIFFS.open(dirName); Serial.printf("Listing directory: %s\r\n", dirName);
if(!dir){ Serial.println("- failed to open directory"); return; }
File file = dir.openNextFile(); while(file){ if(file.isDirectory()){ Serial.print(" DIR : "); Serial.println(file.name()); } else { Serial.print(" FILE: "); Serial.print(file.name()); Serial.print("\tSIZE: "); Serial.println(file.size()); } file = dir.openNextFile(); } }
|
🚀将配置文件写入到闪存文件系统
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| String file_name = "/config.txt"; void writeConfigFile(char *config) { File file = SPIFFS.open(file_name, "w"); if(!file){ Serial.println("- failed to open file for writing"); return; }
if(file.print(config)){ Serial.println("- file write success"); } else { Serial.println("- file write failed"); }
fileInfo("/");
file.close(); }
|
🚀读取配置文件并存储到相应内存中
1 2 3 4 5 6 7 8 9 10 11 12
| String file_name = "/config.txt"; void readConfigFile(char *config) { File file = SPIFFS.open(file_name, "r"); for(int i=0; i<file.size(); i++){ config[i] = (char)file.read(); Serial.print(config[i]); } Serial.println(); file.close(); }
|