Получение списка файлов с помощью 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);
    }
}

Парсинг JSON

Скачайте и откройте файл в Loginom. При необходимости Loginom CE можно скачать бесплатно

Скачать демопример

Минимальные требования к системе:

  • Операционная система: Windows 10 и выше
  • CPU x64: 2 core 1
  • Оперативная память: 4 GB
  • Жесткий диск: 10 GB

1 Поддерживается работа на x64 процессорах Intel Core, AMD FX и более новых, содержащих инструкции SSE4.2 (POPCNT, LZCNT).