目录
一,介绍
在本教程中,我们将使用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的输出,该输出显示所写内容的大小和文件的大小,它们匹配。
spiffs保存的文件的大小有限制嘛
想學,謝謝
?