报错的代码:
function walk(filePath) {
const states = statSync(filePath)
// ...
}
readdirSync("d:\\").forEach(walk)
报错信息:
Error occurred in handler for 'walk-sync': Error: EBUSY: resource busy or locked, stat 'd:\pagefile.sys'
at statSync (node:fs:1615:3)
at t.statSync (node:electron/js2c/asar_bundle:2:4510)
at walk (E:\...\dist-electron\main\index.js:248:28)
at Array.forEach (<anonymous>)
at walkSync (E:\...\dist-electron\main\index.js:277:32)
at E:\...\dist-electron\main\index.js:334:12
at EventEmitter.<anonymous> (node:electron/js2c/browser_init:2:88880)
at EventEmitter.emit (node:events:513:28) {
errno: -4082,
syscall: 'stat',
code: 'EBUSY',
path: 'd:\\pagefile.sys'
}
pagefile.sys应该是分页文件吧?请问这个怎么办呢?
谢谢。
我尝试忽略出错的文件:
let states
try {
states = statSync(filePath)
} catch (error) {
return
}
然后直接弹出错误窗口了:
[Window Title]
Error
[Main Instruction]
A JavaScript error occurred in the main process
[Content]
Uncaught Exception:
Error: EBUSY: resource busy or locked, lstat 'd:\pagefile.sys'
[确定]
这么写try catch有问题吗?为什么还是报错?
这个应该和那你的try catch 写法没关系,报错信息已经说了 EBUSY: resource busy or locked, stat 'd:\pagefile.sys',大概是这个文件 d:\pagefile.sys 被什么占用了,然后你又去读它,看下是不是有什么程序正在操作或者打开你这个文件。