fengzhihean

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

esp8266闪存文件系统<FS.h>

    

 1.存储的文件是编译后的;

用闪存文件系统时要申请空间

 

 

 

2. SPIFFS.begin();  启用闪存文件系统;

3. SPIFFS.format();  格式化SPIFFS.open(file_name【被操作的文件位置+文件名】,"代表要对文件进行的操作")  w代表写入,从文件最开始的地方写入,不会保留原来的内容r代表读取;a代表添加信息,保留文件前面原有的信息,在后边写入信息;a与w在写入时,如果没有该文件,就自己创建。

4.File  dataFile=SPIFFS.open(file_name,"w");

(1). dataFile.println("代表写入文件的内容");

(2). dataFile.close();  关闭dataFile文件;

(3). dataFile.size();  返回读取的dataFile文件大小;

(4). (char)dataFile.size();  读取dataFile文件的内容,每次只返回一个char类型的数据

5.SPIFFS.exists(file_name);  检查闪存中是否有file_name文件;

6. SPIFFS.remove(file_name);  删除文件file_name;删除成功会返回true;

7. Dir dir = SPIFFS.openDir(folder_name);   // 建立“目录”对象

8. dir.next()  用于检查目录中是否还有“下一个文件”,如果有返回true

9.dir.fileName()  获取文件名;

10. FSInfo fs_info;  建立了FSInfo 对象,用于存储闪存状态信息。

(1). SPIFFS.info(fs_info);  通过info函数将闪存状态信息赋给fs_info。

(2).fs_info.totalBytes  返回可用空间总和

(3). fs_info.usedBytes  返回已用空间

(4). fs_info.maxPathLength  返回最大文件名字符限制(含路径和‘\0’)

(5). fs_info.maxOpenFiles  返回最多允许打开文件数量

(6).fs_info.blockSize  返回储存块大小

(7).fs_info.pageSize  返回储存页大小

1. 通过程序向闪存文件系统写入信息

#include <FS.h>  

String file_name = "/taichi-maker/notes.txt"; //被读取的文件位置和名称
 
void setup() {
  Serial.begin(115200);
  Serial.println("");
  
  Serial.println("SPIFFS format start");
  SPIFFS.format();    // 格式化SPIFFS
  Serial.println("SPIFFS format finish");
  
  if(SPIFFS.begin()){ // 启动SPIFFS
    Serial.println("SPIFFS Started.");
  } else {
    Serial.println("SPIFFS Failed to Start.");
  }
 // 建立File对象用于向SPIFFS中的file对象(即/notes.txt)写入信息
  File dataFile = SPIFFS.open(file_name, "w");// open函数可用于对SPIFFS进行操作;
"w"代表此操作作为想SPIFFS写入文件信息,如果文件系统中没有文件file_name,程序会建立该文件
  dataFile.println("Hello IOT World.");       // 向dataFile写入字符串信息
  dataFile.close();                           // 完成文件写入后关闭文件
  Serial.println("Finished Writing data to SPIFFS");
}
 
void loop() {
}

2. 从闪存文件系统中读取文件

#include <FS.h>

String file_name = "/taichi-maker/notes.txt";              //被读取的文件位置和名称
 
void setup() {
  Serial.begin(115200);
  Serial.println("");
  
  if(SPIFFS.begin()){ // 启动闪存文件系统
    Serial.println("SPIFFS Started.");
  } else {
    Serial.println("SPIFFS Failed to Start.");
  }
 
  //确认闪存中是否有file_name文件
  if (SPIFFS.exists(file_name)){
    Serial.print(file_name);
    Serial.println(" FOUND.");
  } else {
    Serial.print(file_name);
    Serial.print(" NOT FOUND.");
  }
 
  //建立File对象用于从SPIFFS中读取文件
  File dataFile = SPIFFS.open(file_name, "r");
 
  //读取文件内容并且通过串口监视器输出文件信息
读取时只会读取一个,(char)是指定读取的信息char类型输出
  for(int i=0; i<dataFile.size(); i++){
    Serial.print((char)dataFile.read());      
  }
 
  //完成文件读取后关闭文件
  dataFile.close();                          
}
 
void loop() {
}
3. 删除闪存文件系统的文件
#include <FS.h>
String file_name = "/taichi-maker/notes.txt";              //被读取的文件位置和名称
 
void setup() {
  Serial.begin(115200);
  Serial.println("");
  
  if(SPIFFS.begin()){ // 启动闪存文件系统
    Serial.println("SPIFFS Started.");
  } else {
    Serial.println("SPIFFS Failed to Start.");
  }
  
  //从闪存中删除file_name文件
  if (SPIFFS.remove(file_name)){
    
    Serial.print(file_name);
    Serial.println(" remove sucess");
    
  } else {
    Serial.print(file_name);
    Serial.println(" remove fail");
  }                      
}
 
void loop() {
}
4. 向闪存文件系统中的文件添加信息
 
#include <FS.h>
String file_name = "/taichi-maker/notes.txt";              //被读取的文件位置和名称
 
void setup() {
  Serial.begin(9600);
  Serial.println("");
  
  if(SPIFFS.begin()){ // 启动闪存文件系统
    Serial.println("SPIFFS Started.");
  } else {
    Serial.println("SPIFFS Failed to Start.");
  }
 
  //确认闪存中是否有file_name文件
  if (SPIFFS.exists(file_name)){
    
    Serial.print(file_name);
    Serial.println(" FOUND.");
 
    File dataFile = SPIFFS.open(file_name, "a");// 建立File对象用于向SPIFFS中的file对象(即/notes.txt)写入信息
    dataFile.println("This is Appended Info."); // 向dataFile添加字符串信息
    dataFile.close();                           // 完成文件操作后关闭文件  
    Serial.println("Finished Appending data to SPIFFS");
    
  } else {
    Serial.print(file_name);
    Serial.print(" NOT FOUND.");
  }
                        
}
 
void loop() {
}
 
5.读取闪存文件系统中的文件夹的文件名
 
#include <FS.h>
 
String file_name = "/taichi-maker/notes.txt";              //被读取的文件位置和名称
 
void setup() {
  Serial.begin(9600);
  Serial.println("");
  
  if(SPIFFS.begin()){ // 启动闪存文件系统
    Serial.println("SPIFFS Started.");
  } else {
    Serial.println("SPIFFS Failed to Start.");
  }
 
  //确认闪存中是否有file_name文件
  if (SPIFFS.exists(file_name)){
    
    Serial.print(file_name);
    Serial.println(" FOUND.");
 
    File dataFile = SPIFFS.open(file_name, "a");// 建立File对象用于向SPIFFS中的file对象(即/notes.txt)写入信息
    dataFile.println("This is Appended Info."); // 向dataFile添加字符串信息
    dataFile.close();                           // 完成文件操作后关闭文件  
    Serial.println("Finished Appending data to SPIFFS");
    
  } else {
    Serial.print(file_name);
    Serial.print(" NOT FOUND.");
  }
                        
}
 
void loop() {
}
 
 
 

posted on   风止何安,璃月  阅读(620)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示