四博智联产品售后
标题:
Arduino 文件系统
[打印本页]
作者:
ycf
时间:
2015-12-9 18:20
标题:
Arduino 文件系统
#include <ESP8266WiFi.h>
#include "FS.h"
void fail(const char* msg) {
Serial.println(msg);
while (true) {
yield();
}
}
void setup() {
Serial.begin(115200);
Serial.setDebugOutput(true);
WiFi.mode(WIFI_OFF);
Serial.println("\n\nFS test\n");
{
if (!SPIFFS.format()) {
fail("format failed");
}
Dir root = SPIFFS.openDir("/");
int count = 0;
while (root.next()) {
++count;
}
if (count > 0) {
fail("some files left after format");
}
}
if (!SPIFFS.begin()) {
fail("SPIFFS init failed");
}
String text = "write test";
{
File out = SPIFFS.open("/tmp.txt", "w");
if (!out) {
fail("failed to open tmp.txt for writing");
}
out.print(text);
}
{
File in = SPIFFS.open("/tmp.txt", "r");
if (!in) {
fail("failed to open tmp.txt for reading");
}
Serial.printf("size=%d\r\n", in.size());
if (in.size() != text.length()) {
fail("invalid size of tmp.txt");
}
Serial.print("Reading data: ");
in.setTimeout(0);
String result = in.readString();
Serial.println(result);
if (result != text) {
fail("invalid data in tmp.txt");
}
}
{
for (int i = 0; i < 10; ++i) {
String name = "seq_";
name += i;
name += ".txt";
File out = SPIFFS.open(name, "w");
if (!out) {
fail("can't open seq_ file");
}
out.println(i);
}
}
{
Dir root = SPIFFS.openDir("/");
while (root.next()) {
String fileName = root.fileName();
File f = root.openFile("r");
Serial.printf("%s: %d\r\n", fileName.c_str(), f.size());
}
}
{
Dir root = SPIFFS.openDir("/");
while (root.next()) {
String fileName = root.fileName();
Serial.print("deleting ");
Serial.println(fileName);
if (!SPIFFS.remove(fileName)) {
fail("remove failed");
}
}
}
{
File tmp = SPIFFS.open("/tmp1.txt", "w");
tmp.println("rename test");
}
{
if (!SPIFFS.rename("/tmp1.txt", "/tmp2.txt")) {
fail("rename failed");
}
File tmp2 = SPIFFS.open("/tmp2.txt", "r");
if (!tmp2) {
fail("open tmp2 failed");
}
}
{
FSInfo info;
if (!SPIFFS.info(info)) {
fail("info failed");
}
Serial.printf("Total: %u\nUsed: %u\nBlock: %u\nPage: %u\nMax open files: %u\nMax path len: %u\n",
info.totalBytes,
info.usedBytes,
info.blockSize,
info.pageSize,
info.maxOpenFiles,
info.maxPathLength
);
}
{
if (!SPIFFS.format()) {
fail("format failed");
}
Dir root = SPIFFS.openDir("/");
int count = 0;
while (root.next()) {
++count;
}
if (count > 0) {
fail("some files left after format");
}
}
{
File tmp = SPIFFS.open("/tmp.txt", "w");
}
{
File tmp = SPIFFS.open("/tmp.txt", "w");
if (!tmp) {
fail("failed to re-open empty file");
}
}
Serial.println("success");
}
void loop() {
}
复制代码
欢迎光临 四博智联产品售后 (http://bbs.doit.am/)
Powered by Discuz! X3.2