Нажмите любой элемент в массиве корневой папки и получите его путь? - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь получить текущую выбранную папку из массива корневой папки моего приложения и прочитать ее с помощью readdirSync, и я не могу найти ничего полезного.

Пока что я получил толькономер индекса по клику, но я не могу прочитать его, потому что это не строка.

Вот что у меня сейчас:

const fs = require('fs');

$('li').click(function() {

    file = $('li').index(this);
    fs.readdirSync(file);
    console.log(file);

})

Мое приложение

my app

Итак, для чтения моей корневой папки у меня есть: let files = fs.readdirSync('.') и forEach функция.Я хочу, например, щелкнуть папку «js» и показать, что внутри нее, но я не знаю, как.

Я новичок в электронах и node.js:)

Спасибо!

1 Ответ

0 голосов
/ 20 февраля 2019

Этот бит кода будет использоваться в коде, который следует после:

  const fileSystem = require("fs");
  const getDirectoryContents = path => fileSystem.readdirSync(path);

Предполагая, что у вашего ul есть идентификатор с именем main, это то, что я бы сделал:

$("#main li").on("click", function clickHandler() {
    const $clickedElement = $(this);
    const elementName = $clickedElement.text(); // gets the text that was clicked
    const fsEntry = fileSystem.statSync(elementName);
    if (fsEntry.isDirectory()) { // retrieve the contents only if the clicked text represents a folder
      const files = ['<ul>'].concat(
        getDirectoryContents(elementName).map(entryName => `<li>${entryName}</li>`),
        '</ul>'
      ).join('');
      $clickedElement.append(files); // not exactly the best way to do it, but does the job
    } else {
      // do something if the entry is a file
    }
  });

Надеюсь, это поможет.

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