【发布时间】:2017-09-08 21:53:25
【问题描述】:
我试图仅从具有不同文件类型的文件夹中获取音频文件。比如图片、视频等。
我做了一个函数来过滤结果,但它只返回第一个音频文件,我不知道我在做什么错。
咖啡脚本:
@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")
【问题讨论】:
-
我解决了这个问题。我意识到我收到了错误的数组长度。因为我声明了数组(musicFiles = Array)而没有指定长度。
标签: node.js audio coffeescript atom-editor fs