0
asyncroniosly套管錯誤
我試圖在Node.js的異步重命名一堆預先生成的測試文件(1000+)重命名多個文件中的Node.js
的代碼如下所示:
const fs = require('fs')
const { each } = require('async')
each(files, file => {
let newfile = 'new' + file
fs.rename(file, newfile, err => {
err ? console.log(err) : console.log('renamed')
}
})
這將導致以下錯誤:
Uncaught Error: ENOENT: no such file or directory, lstat '8d3320e35d22772f' at fs.lstatSync (fs.js:902:18) at Object.fs.lstatSync
這不是async
模塊的問題,因爲與當地forEach
更換each
導致同樣的錯誤。此外,使用同步版本的重命名fs.renameSync
時不存在任何問題。
我認爲它試圖移動一些文件兩次左右,但無法確定究竟在哪裏犯錯。做了這個假設,因爲所有的文件都已經成功地重命名了,並且很可能在之後生成錯誤。有人可以建議是什麼造成這種行爲?
你可以顯示什麼'文件'數組看起來像?這個數組中的示例文件路徑是怎樣的? – forrert
感謝您的快速響應。文件數組很好。重命名'fs.renameSync'的同步版本沒有問題。更新了問題。 –
我敢肯定,'fs.rename()'不使用'fs.lstatSync()'。這真的是唯一正在運行的代碼嗎? – robertklep