【发布时间】:2023-02-14 05:17:17
【问题描述】:
我在 Mac 上有一个具有完整磁盘权限的电子应用程序。我正在使用 fs 在受保护的文件夹中创建目录,并将文件从临时文件夹复制到新目录。
使用fs.copy 时,我会定期收到两种不同类型的错误:
-
如果该目录已经存在并且归用户所有:
- 尝试覆盖现有目录时出现 EPERM 错误(不允许操作,取消链接 xxx),特别是在替换 manifest.json 文件时。这是非常断断续续的。
-
如果该目录不存在或由 root 拥有:
- 尝试创建目录或将文件复制到新位置时出现 EACCES 错误。
代码:
[...Array(sourceDirs.length).keys()].map(async (idx) => {
try {
await fs.ensureDir(destPaths[idx]);
}
catch (e) {
console.log('Directory does not exist and could not be created');
}
try {
await fs.copy(sourceDirs[idx], destPaths[idx]);
}
catch (e) {
console.log('Copy error:', e);
}
});
【问题讨论】:
标签: macos permissions electron sudo node.js-fs