Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| products:laboratory_iot_c:exp43 [2024/12/01 16:43] – [Программный код эксперимента] 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: | ||
| } | } | ||
| </ | </ | ||
| - | |||
| Для работы с файловой системой необходимо подключить библиотеку: | Для работы с файловой системой необходимо подключить библиотеку: | ||
| Строка 67: | Строка 69: | ||
| Для вывода содержимого директории мы написали специальную функцию: | Для вывода содержимого директории мы написали специальную функцию: | ||
| - | |||
| <code arduino[enable_line_numbers=" | <code arduino[enable_line_numbers=" | ||
| 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()); | ||
| Строка 80: | Строка 81: | ||
| 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(); | + | |
| + | | ||
| } | } | ||
| } | } | ||
| </ | </ | ||
| + | Она принимает два аргумента: | ||
| - | После этого | + | Создаем объект директории: |
| - | <file python Exp43-1.py[enable_line_numbers=" | + | <code arduino[enable_line_numbers=" |
| - | import os | + | File dir = LittleFS.open(path, |
| + | </ | ||
| - | files = os.listdir() | + | Открываем первый файл: |
| + | <code arduino[enable_line_numbers=" | ||
| + | File file = root.openNextFile(); | ||
| + | </ | ||
| - | for file in files: | + | Далее |
| - | print(file) | + | < |
| - | </ | + | |
| - | + | if (showPath) Serial.print(file.fullName()); | |
| - | Программы вывела в терминал список файлов. В вашем случае вывод | + | else Serial.print(file.name()); |
| - | < | + | |
| - | boot.py | + | |
| - | 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 (file.isDirectory()) Serial.print(", |
| + | else Serial.print(" | ||
| + | </ | ||
| - | files = os.ilistdir() | + | Выводим размер объекта |
| - | for file in files: | + | <code arduino[enable_line_numbers=" |
| - | print(file) | + | |
| - | </file> | + | Serial.println(file.size()); |
| + | </code> | ||
| - | Программа выводит список файлов: Имя, тип (файл | + | В конце тела цикла открываем следующий файл |
| + | <code arduino[enable_line_numbers=" | ||
| + | file = dir.openNextFile(); | ||
| + | </ | ||
| - | < | + | В следующих строках мы последовательно форматируем файловую систему и инициализируем ее. |
| - | ('boot.py', 32768, 0, 252) | + | < |
| - | (' | + | |
| - | (' | + | |
| - | (' | + | |
| - | (' | + | |
| - | (' | + | |
| </ | </ | ||
| - | Теперь | + | Создаем файл " |
| - | '' | + | <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 | + | |
| - | + | | |
| - | uos.getcwd() | + | |
| - | </file> | + | |
| - | + | ||
| - | Результат: | + | |
| - | < | + | |
| - | '/' | + | |
| </ | </ | ||
| - | Текущей директорией является / - это значит, | ||
| - | <file python Exp43-3.py[enable_line_numbers=" | + | Переименовываем файл "test.txt" в " |
| - | import os | + | <code arduino[enable_line_numbers=" |
| - | + | | |
| - | os.chdir('/dir') | + | |
| - | uos.getcwd() | + | </code> |
| - | </file> | + | |
| - | Результат: | + | Ниже приведен полный вывод программы в последовательный порт: |
| < | < | ||
| - | '/ | ||
| - | </ | ||
| - | Это значит, | ||
| - | Если мы сейчас запросим список файлов, | ||
| - | <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:// | + | |
| - | </ | + | |