esp8266文件系统

组成

大小共4MB,其中1MB用于存储编译后的代码,3MB用于存储其他文件。其他文件包含用户自定义文件和系统文件。

代码操作

函数库

#include <FS.h>

格式化文件系统和启动

SPIFFS.format();
SPIFFS.begin()

定义文件路径和名称

//文件位置和名称
String file_name= "/mark/mark.txt";

open第二个参数为文件模式

  • w 写入模式
  • r 读文件模式
  • a 追加写入模式
File myDataFile=SPIFFS.open(file_name,"w");

文件文件夹操作

  • 判断文件是否存在
SPIFFS.exists(myDataFile)
  • 打开文件夹
String folder = '/mark'
 Dir dir = SPIFFS.openDir(folder); 
  • 遍历文件夹
  while (dir.next()) {  // dir.next()用于检查目录中是否还有“下一个文件”
    Serial.println(dir.fileName()); // 输出文件名
  }
  • 删除文件
SPIFFS.remove(file_name)

案例

#include <FS.h>

//文件位置和名称
String file_name= "mark/mark.txt";

void setup(){
    Serial.begin(115200);
    Serial.println("");
    Serial.println("SPIFFS format start");
    //格式化SPIFFS
    SPIFFS.format();
    Serial.println("SPIFFS format finish");
    if (SPIFFS.begin())
    { 
        Serial.println("SPIFFS Started.");
    } else {
        Serial.println("SPIFFS Failed to Start.");
    }
    File myDataFile=SPIFFS.open(file_name,"w");
    //向文件中写入一句话
    myDataFile.println("Hello IOT World.");  
    myDataFile.close();                           // 完成文件写入后关闭文件
    Serial.println("Finished Writing data to SPIFFS");
    
}
void loop() {
    File myDataFile=SPIFFS.open(file_name,"r");
    for (int i = 0; i < myDataFile.size(); i++)
    {
       Serial.print((char)myDataFile.read());
    }
    Serial.println("");
    myDataFile.close();
    File myDataFile2=SPIFFS.open(file_name,"a");
    myDataFile2.println("追加");
    myDataFile2.close();
    delay(10000);
   
}

最终效果循环追加
在这里插入图片描述

补充

查看文件系统相关信息
首先定义一个全局变量(定义啥scope都可以其实)

FSInfo fs_info;

闪存文件系统信息加载到对象里面(其实就是个赋值)

  SPIFFS.info(fs_info);

读取对象中的信息

 // 可用空间总和(单位:字节)   
  Serial.print(fs_info.totalBytes); 
  // 已用空间(单位:字节)
  Serial.print(fs_info.usedBytes);
  // 最大文件名字符限制(含路径和'\0')
  Serial.println(fs_info.maxPathLength);
  // 最多允许打开文件数量 
  Serial.println(fs_info.maxOpenFiles);
  // 存储块大小
  Serial.println(fs_info.blockSize);
  // 存储页大小
  Serial.println(fs_info.pageSize);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值