我使用以下代码从文件夹中获取文件名:
getFilenameList = () => {
let select = document.getElementById("filenameSelect");
let options = [];
fs.readdirSync(folderUrl).forEach(file => { options.push(file) })
for (let i = 0; i < options.length; i++) {
let opt = options[i];
let el = document.createElement("option");
el.textContent = opt.replace(/\.[^/.]+$/, "");
el.value = opt;
console.log(opt);
select.appendChild(el);
}
}
这将返回如下列表:
.DS_Store
filename1.html
filenameother.js
filenames.txt
问题是它还会拾取不需要的文件,例如:.DS_Store。
我该如何解决这个问题?
答案 0 :(得分:2)
您的函数返回文件夹中的所有文件,包括隐藏的.DS_Store文件。您可以选择忽略该文件
fs.readdirSync(folderUrl).forEach(file => { if(file != ".DS_Store"){options.push(file)}})
所有以。开头的文件。 (通常是隐藏文件)
fs.readdirSync(folderUrl).forEach(file => { if(file[0] != "."){options.push(file)}})
忽略所有没有特定扩展名的文件
fs.readdirSync(folderUrl).forEach(file => { if(file.includes(".html") || file.includes(".js") || file.includes(".txt")){options.push(file)}})