EBUSY:资源忙或已锁定,重命名

时间:2018-04-22 19:09:44

标签: node.js

我的应用程序出现了这个问题,所以我有一个我们收到文件的舞台文件夹,目录上有一个fs.watch,它会监视文件并在看到文件后将文件移动到另一个目录。为了模仿这个过程,我让应用程序运行并将文件复制/粘贴到stage目录。但我不断得到错误,不知道如何克服这个

EBUSY:资源忙或已锁定,重命名为'C:\ Users \ a \ Desktop \ Node js Data Loader \ stage_load \ data \ UI.txt' - > 'C:\ Users \ a \ Desktop \ Node js Data Loader \ stage_load \ stage \ UI.txt'

这是我代码中的代码段

fs.watch(DATA_PATH,(eventype,filename) =>
    {

        if(filename.length > 0)
        {
            const data_name = path.join(DATA_PATH, filename);
            const stg_name = path.join(STAGE_PATH, filename);
            fs.rename(data_name,stg_name ,(err) =>{
                if(err)
                {
                    console.log('File failed to move to Stage');
                    throw err;
                }

            })
            main();
        }

    })

似乎代码需要等待写入完整文件,不确定

1 个答案:

答案 0 :(得分:0)

很抱歉,但是今天我遇到了同样的问题,终于找到了“解决方案”。

那是Google的第二个结果,所以...

我可以通过异步写入日志文件来解决问题。

我的代码正在这样运行

  1. 设置文件夹的访问路径
  2. 检查program.log的大小是否太大,最后以“ 000x”结尾
  3. fs.appendFile(路径,数据,回调)

当我尝试使用fs.appendFileSync()时,我自动处于繁忙状态。 但是使用异步方法,就像魅力一样。

我认为这是一些允许自动执行的库,但是我想要自己的代码,可以根据需要修改和弯曲