单击根文件夹数组中的任何元素并获取其路径?

时间:2019-02-20 17:10:26

标签: javascript node.js electron

我试图从应用程序的根文件夹数组中获取当前单击的文件夹,并使用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 :(得分:0)

下面的代码将使用以下代码:

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

假设您的ul具有一个名为main的ID,这就是我要做的:

$("#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
    }
  });

希望这会有所帮助。