Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
products:laboratory_iot_c:exp43 [2024/12/01 16:40] – [Программный код эксперимента] labuser30 | products:laboratory_iot_c:exp43 [2024/12/01 17:48] (текущий) – [Программный код эксперимента] labuser30 | ||
---|---|---|---|
Строка 13: | Строка 13: | ||
void listDir(String path, bool showPath) { | void listDir(String path, bool showPath) { | ||
Serial.println(); | Serial.println(); | ||
- | File root = LittleFS.open(path, | + | File dir = LittleFS.open(path, |
- | File file = root.openNextFile(); | + | File file = dir.openNextFile(); |
- | while (file) { | + | while (dir) { |
Serial.print(" | Serial.print(" | ||
if (showPath) Serial.print(file.fullName()); | if (showPath) Serial.print(file.fullName()); | ||
Строка 22: | Строка 22: | ||
if (file.isDirectory()) Serial.print(", | if (file.isDirectory()) Serial.print(", | ||
else Serial.print(" | else Serial.print(" | ||
+ | | ||
Serial.print(" | Serial.print(" | ||
Serial.println(file.size()); | Serial.println(file.size()); | ||
- | file = root.openNextFile(); | + | |
+ | | ||
} | } | ||
} | } | ||
Строка 49: | Строка 51: | ||
listDir("/ | listDir("/ | ||
+ | LittleFS.remove("/ | ||
+ | LittleFS.rmdir("/ | ||
+ | listDir("/", | ||
+ | | ||
LittleFS.rename("/ | LittleFS.rename("/ | ||
- | listDir("/", | ||
- | |||
- | LittleFS.remove("/ | ||
listDir("/", | listDir("/", | ||
} | } | ||
Строка 59: | Строка 62: | ||
} | } | ||
</ | </ | ||
- | |||
Для работы с файловой системой необходимо подключить библиотеку: | Для работы с файловой системой необходимо подключить библиотеку: | ||
- | < | + | < |
- | import os | + | #include " |
</ | </ | ||
- | После этого можно работать | + | Для вывода содержимого директории |
- | <file python Exp43-1.py[enable_line_numbers=" | + | <code arduino[enable_line_numbers=" |
- | import os | + | void listDir(String path, bool showPath) { |
+ | Serial.println(); | ||
+ | File dir = LittleFS.open(path, | ||
+ | File file = dir.openNextFile(); | ||
+ | while (dir) { | ||
+ | Serial.print(" | ||
+ | if (showPath) Serial.print(file.fullName()); | ||
+ | else Serial.print(file.name()); | ||
- | files = os.listdir() | + | if (file.isDirectory()) Serial.print(", |
+ | else Serial.print(" | ||
+ | |||
+ | Serial.print(" | ||
+ | Serial.println(file.size()); | ||
+ | |||
+ | file = dir.openNextFile(); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | Она принимает два аргумента: | ||
- | for file in files: | + | Создаем объект директории: |
- | print(file) | + | <code arduino[enable_line_numbers=" |
- | </file> | + | File dir = LittleFS.open(path, " |
+ | </code> | ||
- | Программы вывела в терминал список | + | Открываем первый |
- | < | + | < |
- | boot.py | + | File file = root.openNextFile(); |
- | init.mpy | + | |
- | lcd_api.py | + | |
- | esp8266_i2c_lcd.py | + | |
- | mfrc522.mpy | + | |
- | temp_data.csv | + | |
</ | </ | ||
- | Мы видим список файлов. Однако нам может требоваться допонительная | + | Далее |
- | <file python Exp43-2.py[enable_line_numbers=" | + | <code arduino[enable_line_numbers=" |
- | import os | + | |
+ | if (showPath) Serial.print(file.fullName()); | ||
+ | else Serial.print(file.name()); | ||
+ | </ | ||
- | files = os.ilistdir() | + | Определяем является ли объект директорией или файлом и печатаем соответствующий текст: |
- | for file in files: | + | <code arduino[enable_line_numbers=" |
- | print(file) | + | if (file.isDirectory()) Serial.print(", |
- | </file> | + | |
+ | </code> | ||
- | Программа выводит список файлов: Имя, тип (файл или | + | Выводим размер |
+ | <code arduino[enable_line_numbers=" | ||
+ | Serial.print(" | ||
+ | Serial.println(file.size()); | ||
+ | </ | ||
- | < | + | В конце тела цикла открываем следующий файл в директории: |
- | (' | + | < |
- | ('init.mpy', 32768, 0, 225) | + | file = dir.openNextFile(); |
- | (' | + | </ |
- | (' | + | |
- | (' | + | В следующих строках мы последовательно форматируем файловую систему и инициализируем ее. |
- | (' | + | <code arduino[enable_line_numbers=" |
+ | | ||
+ | | ||
</ | </ | ||
- | Теперь | + | Создаем файл " |
- | '' | + | <code arduino[enable_line_numbers=" |
+ | File file = LittleFS.open("/ | ||
+ | file.print(" | ||
+ | file.close(); | ||
+ | listDir("/", | ||
+ | </ | ||
- | < | + | Создаем в корневой директории директорию " |
- | ('boot.py', 32768, 0, 252) | + | < |
- | (' | + | |
- | (' | + | |
- | (' | + | |
- | (' | + | |
- | (' | + | |
- | (' | + | |
</ | </ | ||
- | Как видно, директория dir создалась. | + | Создаем в директории " |
+ | Выводим содержимое | ||
+ | <code arduino[enable_line_numbers=" | ||
+ | file = LittleFS.open("/ | ||
+ | file.print(" | ||
+ | file.close(); | ||
+ | listDir("/ | ||
+ | listDir("/ | ||
+ | </ | ||
- | В файловых системах есть такое понятие как // | + | Удаляем сначала файл " |
- | <file python Exp43-3.py[enable_line_numbers=" | + | <code arduino[enable_line_numbers=" |
- | import os | + | |
+ | LittleFS.rmdir("/ | ||
+ | listDir("/", | ||
+ | </ | ||
- | uos.getcwd() | + | Переименовываем файл " |
- | </ | + | < |
- | + | | |
- | Результат: | + | listDir("/", |
- | < | + | |
- | '/' | + | |
</ | </ | ||
- | Текущей директорией является / - это значит, | ||
- | <file python Exp43-3.py[enable_line_numbers=" | + | Ниже приведен полный вывод программы в последовательный порт: |
- | import os | + | |
- | + | ||
- | os.chdir('/ | + | |
- | uos.getcwd() | + | |
- | </ | + | |
- | + | ||
- | Результат: | + | |
< | < | ||
- | '/ | ||
- | </ | ||
- | Это значит, | ||
- | Если мы сейчас запросим список файлов, | ||
- | <code python> | ||
- | files = os.listdir('/' | ||
- | </ | ||
- | Вернемся обратно в корень файловой системы и удалим директорию dir: | + | name: test.txt type: file, size: 9 |
- | <file python Exp43-4.py[enable_line_numbers=" | + | |
- | import os | + | |
- | os.chdir('/' | + | name: dir, type: folder, size: 0 |
- | os.rmdir(' | + | name: test.txt type: file, size: 9 |
- | </file> | + | |
- | Директорию нельзя удалить, | + | name: test2.txt type: file, size: 15 |
- | Также мы можем удалить файл | + | name: / |
- | <code python> | + | |
- | uos.remove(' | + | name: test.txt type: file, size: 9 |
- | </ | + | |
- | или переименовать файл | + | name: test_new.txt type: file, size: 9 |
- | <code python> | + | |
- | uos.rename(' | + | |
</ | </ | ||
- | <WRAP center round info 60%> | + | Так как программа выполняется |
- | [[https:// | + | |
- | </ | + |