我试图从应用程序的根文件夹数组中获取当前单击的文件夹,并使用readdirSync进行读取,但找不到任何有用的信息。
到目前为止,我得到的只是单击时的索引号,但由于它不是字符串,所以我无法读取。
这是我现在拥有的:
const fs = require('fs');
$('li').click(function() {
file = $('li').index(this);
fs.readdirSync(file);
console.log(file);
})
我的应用
因此,要读取我的根文件夹,我具有:let files = fs.readdirSync('.')
和一个forEach
函数。例如,我想单击“ js”文件夹,并显示其中的内容,但我不知道如何。
我是电子和node.js的新手:)
谢谢!
答案 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
}
});
希望这会有所帮助。