NodeMcu arduino ESP8266闪存文件系统基本操作(读写删除,目录)

12 篇文章 8 订阅

/**********************************************************************

函数说明:
SPIFFS.open(file_name, “w”);
以上函数有两个参数:
第一个参数是被操作的文件名称,本示例中该文件为/notes.txt
第二个参数"w" 代表写入文件信息。(如需了解如何读取信息,请参阅示例程序esp8266-flash-read)
***********************************************************************/

#include <FS.h>  
 
String file_name = "/taichi-maker/notes.txt"; //被读取的文件位置和名称
String folder_name = "/taichi-maker";         //被读取的文件夹 
FSInfo fs_info;
void setup() {
  Serial.begin(9600);
  Serial.println("");
  
  writdata();
  
  delay(500);
  
  appenddata();
 
}

//向闪存地址写数据

void writdata() {
  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 dataFile = SPIFFS.open(file_name, "w");// 建立File对象用于向SPIFFS中的file对象(即/notes.txt)写入信息
  dataFile.println("Hello IOT World.");       // 向dataFile写入字符串信息
  dataFile.close();                           // 完成文件写入后关闭文件
  Serial.println("Finished Writing data to SPIFFS");
}

//从闪存地址读取数据

void readdata() {
 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"); 

  //读取文件内容并且通过串口监视器输出文件信息
  for(int i=0; i<dataFile.size(); i++){
    Serial.print((char)dataFile.read()); //每次只能读取一个字符。循环依次读取完      
  }
  //完成文件读取后关闭文件
  dataFile.close(); 
  
}

//从闪存地址中添加内容

void appenddata(){
  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 getlist(String path){
  
  if(SPIFFS.begin()){ // 启动闪存文件系统
    Serial.println("SPIFFS Started.");
  } else {
    Serial.println("SPIFFS Failed to Start.");
  }

  // 显示目录中文件内容以及文件大小
  Dir dir = SPIFFS.openDir(path);  // 建立“目录”对象
  
  while (dir.next()) {  // dir.next()用于检查目录中是否还有“下一个文件”
    Serial.println(dir.fileName()); // 输出文件名
  }
  
}

//从闪存文件系统中删除文件

void deldfile(String path){
  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 info(){
  
  SPIFFS.begin();       //启动SPIFFS
  Serial.println("");
  Serial.println("SPIFFS Started.");
 
  // 闪存文件系统信息
  SPIFFS.info(fs_info);
 
  // 可用空间总和(单位:字节)
  Serial.print("totalBytes: ");     
  Serial.print(fs_info.totalBytes); 
  Serial.println(" Bytes"); 
 
  // 已用空间(单位:字节)
  Serial.print("usedBytes: "); 
  Serial.print(fs_info.usedBytes);
  Serial.println(" Bytes"); 
 
  // 最大文件名字符限制(含路径和'\0')
  Serial.print("maxPathLength: "); 
  Serial.println(fs_info.maxPathLength);
 
  // 最多允许打开文件数量
  Serial.print("maxOpenFiles: "); 
  Serial.println(fs_info.maxOpenFiles);
 
  // 存储块大小
  Serial.print("blockSize: "); 
  Serial.println(fs_info.blockSize);
 
  // 存储页大小
  Serial.print("pageSize: ");
  Serial.println(fs_info.pageSize);
}
void loop() {
  
  delay(500);
  readdata(); 

  delay(5000);
  getlist(folder_name);

  delay(5000);
  deldfile(folder_name);

  delay(5000);
  info();
  
  
}
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闰土小蒋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值