DyadyaGenya
Member
Доброго времени суток. Пробую разобраться с SPIFFS. Она конечно, проигрывает LittleFS, но для порядка надо бы и с ней разобраться. Вроде все понятно. Создаю файлы, хоть прямо в "корне", хоть используя "виртуальные" каталоги, когда имя файла записывается через слэш. Читаю и меняю их. Могу залить отдельно скетч с FSBrowser и в нем работать с файлами. Но вот как раз те файлы, которые создаю не в этом браузере, а руками, то эти файлы в браузере не видны, хотя остаются на флэши.
Файлы создаю так:
Проверяю наличие файла так:
Естественно, для проверки списка файлов я удаляю функцию создания и записи файлов. При этом, если создать файл или загрузить с помощью FSBrowser, то эти файлы видны везде и при сканировании моей функцией и в браузере.
Файлы создаю так:
Код:
if(!SPIFFS.exists(path1+"edit/Test2.txt")){
// Create a file
File file = SPIFFS.open(path1+"edit/Test2.txt", "w+");
// Check if the file has been created and if it is possible to write information to it
if(!file){
Serial.println("Can't open file for writing");
SPIFFS.end();
return;
}
else {
file.write("Hellow, world\n");
file.close();
}
}
Код:
void main_scan(String path){
int v = scan_dir(path);
Serial.print("Total used in Dir \"" +path+ "\" = ");
Serial println(v);
}
unsigned long scan_dir(String path) {
Dir dir1 = SPIFFS.openDir(path);
unsigned long total_size = 0;
while (dir1.next()) {
if (dir1.isFile()){
Serial.print("File:\t");
Serial.print(path + dir1.fileName());
Serial.print("\tSize:\t");
unsigned long f_size = dir1.fileSize();
Serial.println(f_size);
total_size += f_size;
}
if (dir1.isDirectory()) {
unsigned long dsize = scan_dir(path+dir1.fileName()+"/");
Serial.print("Dir:\t");
Serial.print(path+dir1.fileName()+"/");
Serial.print("\tSize:\t");
Serial println(dsize);
total_size += dsize;
}
}
return total_size;
}