gpt4 book ai didi

node.js - 如何使用 fs.readFileSync() 获取特定文件

转载 作者:行者123 更新时间:2023-12-03 00:14:01 24 4
gpt4 key购买 nike

我试图只从具有不同文件类型的文件夹中获取音频文件。比如图片、视频等。

我做了一个函数来过滤结果,但它只返回我不知道我做错了什么的第一个音频文件。

CoffeeScript :

@audioFiles = @getAudioFiles()

getAudioFiles: ->

allFiles = fs.readdirSync(@pathtoMusic.toString())
musicFiles = Array
file = 0
cont = 0

#-- I also tried with a for loop --#
#for file of allFiles
# fileName = allFiles[file]

while(file < allFiles.length)
fileName = allFiles[file++]
fileExtension = fileName.split('.').pop();

if(fileExtension is "mp3") or (fileExtension is "MP3")
musicFiles[cont++] = fileName
if(fileExtension is "wav") or (fileExtension is "WAV")
musicFiles[cont++] = fileName
if(fileExtension is "3gp") or (fileExtension is "3GP")
musicFiles[cont++] = fileName
if(fileExtension is "m4a") or (fileExtension is "M4A")
musicFiles[cont++] = fileName
if(fileExtension is "webm") or (fileExtension is "WEBM")
musicFiles[cont++] = fileName

return musicFiles

有没有办法直接做到这一点?无需创建函数或循环。这将是太棒了。像这样的东西。
fileExtensions = ["mp3","m4a","3gp","wav","webm","etc"...]
@audioFiles = fs.readdirSync(pathToMusic,"fileExtencions")

最佳答案

如果您愿意使用第三方依赖项,请考虑使用 globby :

const globby = require('globby');

// Perform a basename-only match if the pattern does not contain
// any slash characters. That is, *.js would be treated as equivalent
// to **/*.js, matching all js files in all directories.
const options = { matchBase: true };
const fileTypes = ['*.mp3', '*.wav', '*.3gp', '*.m4a', '*.webm'];

globby(fileTypes, options).then(paths => {
console.log(paths);
});

关于node.js - 如何使用 fs.readFileSync() 获取特定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43381019/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com