06、文件删除报错operation not permitted,stat……

最近开发过程中,有一个文件的增删操作。遇到一个困扰我很久的问题。

一、问题描述

  1. electron新建的文件,关闭应用程序之前,删除报错,错误如下所示:


    image.png

    2.关闭应用程序以后,正常删除
    3.新建的文件,删除报错后找到这个文件,右键属性,发现文件权限变了,不可读取了。但是删除之前权限是没有问题的。

2.相关代码

# 新建文件并写入
let ws = fs.createWriteStream(url), { mode: 0o755 })
    ws.write(data.content, err => {})
# 删除文件
if(fs.existsSync(url)) {
      fs.unlink(url ,function (err) {
        console.log('err',err)
        if (err) throw err;
      })
    }    

3.产生问题的原因

fs.write这种方式创建文件写入文件,没有关闭文件,导致程序占用这个文件,无法进行删除操作

4.解决方法

采用下面的方法创建和写入文件

fs.writeFile(url, content,(err, stats) => {
      if (err) throw err;
      console.log(`删除失败,文件状态: ${JSON.stringify(stats)}`);
})
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容