我試圖從一個給定的目錄中只獲得影像檔案名來輸出到控制臺。 我最初是按照這個答案來做的,但我不知道如何給它提供多個擴展名。
我如何使用 node.js 獲得具有特定檔案擴展名的檔案串列?
function fName(fp){
const { readdirSync } = require('fs'/span>)。
const path = require("path")。
const fs = require('fs') 。
//目前不需要整個檔案路徑。
// const gl = require('glob');
//gl(fp `/**/*.@(jpg|png)`, {}, (err, files) => {
//控制臺.log(files)
// })
let extensions = ["jpg"/span>, "jpeg"/span>, "png"/span>]。
let nameFilter = [];
const rawFileNames = readdirSync(fp, {withFileTypes: true})
.filter(span class="hljs-params">dirent => dirent.isFile()
.map(span class="hljs-params">dirent => dirent.name)
//過濾擴展。
let fileNames = rawFileNames.filter(file => {
path.extname(file).toLowerCase() === extensions;
})
console.log(fileNames)。
}
EDIT
我也剛剛嘗試做了一個迭代擴展串列的函式并呼叫它,但它仍然回傳一個空陣列
let extensions = ["jpg"/span>, "jpeg"/span>, "png"/span>] 。
let getexts = function(exte){
for (ex in exte){
return exte[ex]。
}
}
let nameFilter = [] 。
const rawFileNames = readdirSync(fp, {withFileTypes: true})
.filter(span class="hljs-params">dirent => dirent.isFile()
.map(span class="hljs-params">dirent => dirent.name)
//過濾擴展。
let fileNames = rawFileNames.filter(file => {
path.extname(file).toLowerCase() === getexts(extensions)。
})
uj5u.com熱心網友回復:
在你的過濾器中,你能不能只做:
let fileNames = rawFileNames.filter(>file => {
return extensions.includes(path.extname(file).toLowerCase()
})
uj5u.com熱心網友回復:
修改你的過濾條件,如下。
//filter the extensions。
let fileNames = rawFileNames.filter(file => {
return extensions.includes(path.extname(file).toLowerCase()
});
console.log(fileNames)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/332246.html
標籤:
下一篇:在一列中創建過濾或查詢的資料陣列
