fs

Объект реализует работу с SD-картами. Класс написан по аналогии с модулем fs Node.js. Ввиду ограничений платформы, реализовать асинхронные обращения к карте памяти невозможно — все методы работают в синхронном режиме. Для подключения модуля, необходимо воспользоваться командой var fs = require('fs').

Если вам необходимо обрабатывать файлы большого размера, следует использовать класс File. Этот класс поддерживает блочное чтение файлов, что позволит избежать ошибки нехватки памяти.

fs.appendFileSync(fileName, data)

Дописывает в конец файла fileName данные data. Возвращает true при успешной записи или false, если запись не удалась.

fs.appendFile(fileName, data)

Дописывает в конец файла fileName данные data. Возвращает true при успешной записи или false, если запись не удалась. Так как асинхронность не поддерживается из-за аппаратных ограничений, работает аналогично функции fs.appendFileSync.

fs.pipe(source, destination, options)

fs.readdirSync([path])

Возвращает содержимое каталога path в виде массива. Если параметр path не передан — выводится информация о корневом каталоге.

// Настаиваем SPI2
SPI2.setup({mosi:B15, miso:B14, sck:B13});
 
// Подключаем объект работы с файловой системой
var fs = require("fs");
 
// Подключаем SD-карту
E.connectSDCard(SPI2, P4 /*CS*/);
 
// Выводим список файлов в корне карты
print(fs.readdirSync());
 
/*
[
  "System Volume Information",
  "CXT.TXT",
  "1.wav",
  "index.htm",
  "headers.htm",
  "http.htm",
  "htmll.htm",
  "index2.htm",
  "index3.htm",
  "index4.htm",
  "index5.htm",
  "index6.htm",
  "index7.htm",
  "index8.htm",
  "index9.htm",
  "indexP2.htm",
  "indexP1.htm",
  "indexP3.htm",
  "Arduino.raw"
 ]
*/

fs.readdir([path])

Возвращает содержимое каталога path в виде массива. Если параметр path не передан — выводится информация о корневом каталоге. Так как асинхронность не поддерживается из-за аппаратных ограничений, работает аналогично функции fs.readdirSync.

fs.readFileSync(fileName)

Функция возвращает содержимое файла fileName или ошибку. Учтите, размер возвращенных данных может занять всю память! Для работы с большими данными используйте класс File.

// Настаиваем SPI2
SPI2.setup({mosi:B15, miso:B14, sck:B13});
 
// Подключаем объект работы с файловой системой
var fs = require("fs");
 
// Подключаем SD-карту
E.connectSDCard(SPI2, P4 /*CS*/);
 
// Выводим список файлов в корне карты
var files = fs.readdirSync();
 
// Выводим информацию, хранящуюся в 3-м файле
print(fs.readFileSync(files[2]));
 
/*
Пример вывода:
test
*/

fs.readFile(fileName)

Возвращает содержимое файла fileName или ошибку. Так как асинхронность не поддерживается из-за аппаратных ограничений, работает аналогично функции fs.readFileSync.

fs.statSync(fileName)

Возвращает объект со свойствами содержащими информацию о файле fileName. Объект имеет свойства:

  • size — размер в байтах
  • dir — путь к файлу
  • mtime — объект Date, содержащий время создания файла
// Настаиваем SPI2
SPI2.setup({mosi:B15, miso:B14, sck:B13});
 
// Подключаем объект работы с файловой системой
var fs = require("fs");
 
// Подключаем SD-карту
E.connectSDCard(SPI2, P4 /*CS*/);
 
// Выводим список файлов в корне карты
var files = fs.readdirSync();
 
// Выводим информацию о 3-м файле
print(fs.statSync(files[2]));
 
/*
Пример выводимой информации
{ "size": 131103, "dir": false,
  "mtime": { "ms": 949366800000 }
 }
*/

fs.unlinkSync(fileName)

Удаляет файл fileName и возвращает true при удачном удалении или false, если удаление не произошло.

Удаляет файл fileName и возвращает true при удачном удалении или false, если удаление не произошло. Так как асинхронность не поддерживается из-за аппаратных ограничений, работает аналогично функции fs.unlinkSync.

fs.writeFileSync(fileName, data)

Записывает в файл fileName данных из параметра data. Если файл существует — он будет перезаписан. Возвращает true в случае успешной записи или ошибку.

// Настаиваем SPI2
SPI2.setup({mosi:B15, miso:B14, sck:B13});
 
// Подключаем объект работы с файловой системой
var fs = require("fs");
 
// Подключаем SD-карту
E.connectSDCard(SPI2, P4 /*CS*/);
 
// Выводим список файлов в корне карты
var files = fs.readdirSync();
 
// Выводим информацию о записи в файл данных
print(fs.writeFileSync(files[2], 'new data'));
 
/*
Пример вывода:
true - если запись была успешной
*/

fs.writeFile(fileName, data)

Записывает в файл fileName данных из параметра data. Так как асинхронность не поддерживается из-за аппаратных ограничений, работает аналогично функции fs.writeFileSync.