Angular получить все имена файлов в указанной папке c - PullRequest
0 голосов
/ 17 марта 2020

Внутри моего приложения Angular я хочу перечислить имена всех файлов в папке активов.

Чтобы я мог использовать эту библиотеку npm: list-files-in-dir

https://www.npmjs.com/package/list-files-in-dir

Так я предоставляю эту услугу в моем приложении angular:

    import { Injectable } from '@angular/core';
    import { HttpClient } from '@angular/common/http';
    import {listFiles} from 'list-files-in-dir';
    @Injectable()
    export class ConfigService {
      files: any;
      constructor(private http: HttpClient) { }

      getFilesFromFolder(){
        listFiles('assets/')
        .then(files => {
            // do what ever you want with the file paths
            this.files = files
            console.log(this.files)
        }
       }
     }

, но при вызове я получаю это ошибка:

ОШИБКА Ошибка: невыполненная (в обещании): Ошибка: Ошибка: ENOENT: нет такого файла или каталога. Ошибка '/ assets'

Я сделал фрагмент стекаблика для этого:

https://stackblitz.com/edit/angular-read-jsonfile-data

Предложения?

Ответы [ 2 ]

1 голос
/ 18 марта 2020

Вы не можете получить доступ к файловой системе в angular напрямую, потому что однажды вы можете развернуть свой код, а затем код будет запущен в браузере.

Если вы создаете настольное приложение в сочетании с Electron тогда вы можете получить доступ к файловой системе рабочего стола через node.js файловую систему api .

Angular имеет концепцию environments для хранения конфигураций, где вы можете различать конфигурации между продуктами и dev, посмотрите Angular руководство по сборке .

export const environment = {
  production: false,
  apiUrl: 'http://my-api-url'
};

Только для простых настроек конфигурации я рекомендую создать простой ConfigService и просто хранить данные как const там.

Если вы предпочитаете загружать данные из json файлов, вы можете следовать этой теме для конфигурации загрузки JSON File In Angular 2.

0 голосов
/ 18 марта 2020

Вы не можете этого сделать. Вы должны

1) Добавить серверный API, который возвращает список файлов.

2) Или вы можете написать скрипт в список файлов gen в файл json, и Dynami c загрузить angular

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...