3闪存文件系统基本操作

本文介绍了如何使用ESP32的SPIFFS文件系统进行文件操作,包括向闪存文件系统写入信息,读取信息,追加信息,读取目录内容以及删除文件。示例代码详细展示了每个操作的过程,对于物联网设备的数据存储和管理具有指导意义。
摘要由CSDN通过智能技术生成

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

核心代码


  File dateFile = SPIFFS.open(file_name, "w"); //建立File对象用于写入信息

#include<FS.h>

String file_name = "/taichi-maker/notes.text";

void setup() {
  Serial.begin(9600);
  Serial.println("");

  Serial.println("SPIFFS format start");
  SPIFFS.format();
  Serial.println("SPIFFS format finish");

  if (SPIFFS.begin()) { //启动SPIFFS
    Serial.println("SPIFFS Started");
  }
  else {
    Serial.println("SPIFFS Failed to Start.");
  }

  File dateFile = SPIFFS.open(file_name, "w"); //建立File对象用于写入信息
  dateFile.println("Hello IOT World !");
  dateFile.close();
  Serial.println("Finished Writing data to SPIFFS");
}

void loop() {

}

2. 通过程序从闪存文件系统读取信息

核心代码

File dateFile = SPIFFS.open(file_name, "r"); //建立File对象用于读取信息

#include<FS.h>

String file_name = "/taichi-maker/notes.text";

void setup() {
  Serial.begin(9600);
  Serial.println("");

  if (SPIFFS.begin()) { //启动SPIFFS
    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.println("Not Found");
  }

  File dateFile = SPIFFS.open(file_name, "r"); //建立File对象用于读取信息
  for(int i=0;i<dateFile.size();i++){
    Serial.print((char)dateFile.read());
  }
  dateFile.close();
  Serial.println("Finished reading data to SPIFFS");
}

3. 通过程序向闪存文件系统文件添加信息

核心代码

 File dateFile = SPIFFS.open(file_name, "a"); //建立File对象用于添加信息

#include<FS.h>

String file_name = "/taichi-maker/notes.text";

void setup() {
  Serial.begin(9600);
  Serial.println("");

  if (SPIFFS.begin()) { //启动SPIFFS
    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 dateFile = SPIFFS.open(file_name, "a"); //建立File对象用于添加信息
    dateFile.println("This is appended Info");
    dateFile.close();
    Serial.println("Finished appending data to SPIFFS");
  }
  else {
    Serial.print(file_name);
    Serial.println("Not Found");
  }
}

void loop() {

4. 通过程序读取目录内容

核心代码

Dir dir = SPIFFS.openDir(folder_name);

  while (dir.next()) {
    Serial.println(dir.fileName());
  }

#include<FS.h>

String file_name = "/taichi-maker/notes.text";
String folder_name = "/taichi-maker";

void setup() {
  Serial.begin(9600);
  Serial.println("");

  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对象(即myFile.txt)写入信息
  dataFile.println("Hello Taichi-Maker.");    // 向dataFile写入字符串信息
  dataFile.close();                           // 完成文件写入后关闭文件
  Serial.println(F("Finished Writing data to SPIFFS"));

  Dir dir = SPIFFS.openDir(folder_name);

  while (dir.next()) {
    Serial.println(dir.fileName());
  }
}

void loop() {

}

5. 从闪存文件系统中删除文件

核心代码

SPIFFS.remove(file_name)

#include<FS.h>

String file_name = "/taichi-maker/notes.text";


void setup() {
  Serial.begin(9600);
  Serial.println("");

  if (SPIFFS.begin()) { //启动SPIFFS
    Serial.println("SPIFFS Started");
  }
  else {
    Serial.println("SPIFFS Failed to Start.");
  }

  if (SPIFFS.remove(file_name)) { //删除file_name文件
    Serial.print(file_name);
    Serial.println("Remove Sucess");
  }
  else {
    Serial.print(file_name);
    Serial.println("Remove Fail");
  }

}

void loop() {

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值