二十二,ESP32 SPIFFS 获取文件的大小

释放双眼,带上耳机,听听看~!

一,介绍

在本教程中,我们将使用ESP32 SPIFFS文件系统 获取文件的大小。有关于如何写入文件的介绍,请在这里查询。

二,硬件

  • ESP32开发板

三,电路图

四,代码设计

正如我们在之前的帖子中所做的那样,我们需要包含SPIFFS.h库。这样,我们就可以访问SPIFFS  extern变量,我们将使用它来与文件系统进行交互。

#include "SPIFFS.h"

继续进行Arduino设置,我们首先打开一个串行连接,以便稍后输出我们程序的结果。我们还将使用已经提到的SPIFFS extern变量的begin方法挂载SPIFFS文件系统。

Serial.begin(115200);
 
if(!SPIFFS.begin(true)){
    Serial.println("An Error has occurred while mounting SPIFFS");
    return;
}

现在我们将一些内容写入文件。请注意,如果您已经按照之前的教程之一创建并写入文件,那么您可以跳过此部分,如果您需要并使用该文件。

要打开文件,我们需要在SPIFFS变量上调用open方法,将第一个输入文件的名称作为打开方式传递,然后作为开放模式传递。我们将写入名为“ test.txt ”的文件,并通过将常量FILE_WRITE作为第二个参数传递,以写入模式打开文件。

这将返回类File的对象,并且由于此类会覆盖C ++布尔运算符,因此我们可以通过使用IF条件来检查打开操作是否成功。

File file2 = SPIFFS.open("/test.txt");
 
if(!file2){
    Serial.println("Failed to open file for reading");
    return;
}

成功之后,我们只需通过调用File对象的size方法即可获得文件的大小。此方法不带参数,并返回文件的大小(以字节为单位):

Serial.print("File size: ");
Serial.println(file2.size());


要完成该过程,我们关闭该文件。

file2.close();

最终的源代码如下所示。

/*******************************************************   
             ESP32 获取文件的大小
   功能:使用ESP32SPIFFS文件系统 获取文件的大小
   引脚: 
   Designer: Code_Mouse
   Date:2018-9-27
 *******************************************************/

#include "SPIFFS.h"
 
void setup() {
 
   Serial.begin(115200);
 
   if(!SPIFFS.begin(true)){
        Serial.println("An Error has occurred while mounting SPIFFS");
        return;
   }
 
    File file = SPIFFS.open("/test.txt", FILE_WRITE);
 
    if(!file){
        Serial.println("There was an error opening the file for writing");
        return;
    }
 
    const char * content = "Testing content!";
 
    Serial.print("Content length: ");
    Serial.println(strlen(content));
 
    if(file.print(content)){
        Serial.println("File was written");;
    } else {
        Serial.println("File write failed");
    }
 
    file.close();
 
    File file2 = SPIFFS.open("/test.txt");
 
    if(!file2){
        Serial.println("Failed to open file for reading");
        return;
    }
 
    Serial.print("File size: ");
 
    Serial.println(file2.size());
 
    file2.close();
}
 
void loop() {}

五,代码测试

要测试以前的代码,只需编译它并使用Arduino IDE将其上传到您的设备。完成后,打开Arduino IDE串行监视器。您应该获得类似于图1的输出,该输出显示所写内容的大小和文件的大小,它们匹配。

二十二,ESP32 SPIFFS 获取文件的大小
图1

给TA买糖
共{{data.count}}人
人已赞赏
ESP32ESP32-基础

二十一,ESP32 SPIFFS:读取一个文件

2018-9-24 0:24:50

ESP32ESP32-基础

二十三,ESP32 按AND 位运算符

2018-10-1 18:47:42

3 条回复 A文章作者 M管理员
  1. spiffs保存的文件的大小有限制嘛

  2. 老鐘

    想學,謝謝

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索