Способ чтения имен файлов из каталога и вывода в JSON с Electron & React - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь создать приложение для игрока c с помощью Electron & React. Мне удалось получить доступ к файлам musi c в папке resources / musi c при сборке и установке, но я должен указать точный путь к mp3.

Я пытался отсканировать каталог и получить все имена файлов musi c для добавления в JSON, так как идея заключается в том, что пользователь может добавить свои собственные файлы musi c в папку musi c, которые будут выбраны приложением и отображены в list.

Большинство решений, которые я вижу, используют узел fs , но я просто не могу заставить его работать. Я продолжаю получать TypeError: fs.readdir не является функцией

Любая помощь будет принята с благодарностью.

import React, { Component } from 'react';
import { Link } from "react-router-dom"
import Testpage from "./Test";
import song from '../Music/Taxi.mp3'
import FileSearch from "../filesearch";

const fileSearch = new FileSearch();

const dataPath =
    process.env.NODE_ENV === 'development'
        ? song
        : 'file:///resources/Music/Taxi.mp3';




class Home extends Component {
    constructor(props) {
        super(props);

        this.state = {};
    }

    componentDidMount() {
        fileSearch.search()
    }


    render() {
        return (
            <div id="page">
                <h1>laceHolder Home</h1>
                <div>
                    <Testpage song={dataPath}/>
                </div>
            </div>
        );
    }
}

export default Home;

const testFolder = './';
const fs = require('fs');

export default class FileSearch {

    search = () => {
        fs.readdir(testFolder, (err, files) => {
            files.forEach(file => {
                console.log(file);
            });
        });
    }
}

1 Ответ

1 голос
/ 16 января 2020

Решено, после нескольких часов поисков (я довольно новичок в реакции и электроне),

Я использовал приведенное ниже вместо импорта vanilla fs, и это сработало!

const remote = window.require('electron').remote;
const electronFs = remote.require('fs');
const electronDialog = remote.dialog;

Спасибо за ваши комментарии, чтобы посмотреть на window.require

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