Получение списка файлов с помощью JavaScript
В работе аналитика очень часто приходится сталкиваться с рутинными задачами, которые не всегда связаны с очисткой данных, машинным обучением или написанием скрипта на Python. Путь начинается, как правило, с импорта данных или с их поиска. С помощью данного сценария пользователь может получить список объектов из файловой системы компьютера или Loginom File Storage для использования в различных целях, в том числе для решения задачи множественного импорта. Реализовано с помощью библиотеки JavaScript fileapi.
Демопример является упрощенной версией компонента Список объектов библиотеки Loginom FileApi Kit.
Описание алгоритма
Подмодель рекомендуется использовать как производный компонент.
Во входном порту переменных указан параметр — Путь, по которому компонент будет выводить список файлов. По умолчанию путь задан: \user
, для того, чтобы получить список файлов, которые есть в папке на демостенде. При локальном запуске примера необходимо указать путь к папке в файловой системе компьютера.
В узле JavaScript настроены столбцы выходной таблицы. Они будут иметь следующую структуру:
Имя | Метка |
---|---|
name | Имя |
file_extension | Расширение |
full_name | Полное имя |
size | Размер |
correct_path | Корректность пути |
isfolder | Папка |
mdate | Дата изменения |
Код:
import { InputVariables, OutputTable } from "builtIn/Data";
import * as fs from "builtIn/FS";
const { correct_path, name, isfolder, file_extension, size, full_name, mdate } = OutputTable.Columns;
let path = InputVariables.Items.path.Value || ".";
if (!fs.existsSync(path)) { // Условие, при котором путь не существует
OutputTable.Append();
correct_path.Set(InputVariables.Items.error.Value); // Вывод ошибки (значение переменной)
} else {
try {
let files = fs.readdirSync(path, { withFileTypes: true }); // Создание объекта files, в котором содержится информация о файлах по указанному пути
for (let file of files) { // Цикл, в котором обрабатываются объекты файловой системы
OutputTable.Append(); //Добавление новой строки в выходную таблицу
let fname = path + "/" + file.name; // Формирование полного имени файла (вместе с путем)
correct_path.Set(true); // Добавление значения в поле correct_path
name.Set(file.name);
full_name.Set(fname);
let stat = fs.statSync(fname);
if (file.isDirectory()) { // Проверка, является ли объект файлом
isfolder.Set(true);
} else {
let p = file.name.lastIndexOf("."); // Получение позиции точки
let ext = "";
if (p > -1) {
ext = file.name.substring(p + 1); // Формирование расширения
}
file_extension.Set(ext);
size.Set(stat.size);
isfolder.Set(false);
}
full_name.Set(fname);
mdate.Set(stat.mtime);
}
} catch (e) { // Обработка ошибок
OutputTable.Append();
correct_path.Set(e);
}
}
Скачайте и откройте файл в Loginom. При необходимости Loginom CE можно скачать бесплатно
Минимальные требования к системе:
- Операционная система: Windows 8.1 и выше.
- CPU x64: 1 core.
- Оперативная память: 1 GB.
- Жесткий диск: 10 GB.