首页 > 解决方案 > 如何故意使文件成为“EBUSY:资源繁忙或锁定”

问题描述

在我所有的搜索尝试中,我只能找到试图修复“EBUSY:资源繁忙或锁定”错误的人。

我想要的是故意将文件置于这种状态(暂时)。如何才能做到这一点?

我尝试使用fs.open,fs.createReadStreamfs.createWriteStreamNodeJS,但令我惊讶的是,这并没有使文件忙碌。

我怎样才能做到这一点?最好在 NodeJS 中,但它可以是任何语言。

标签: filelocking

解决方案


在 .NET Core 上,您可以使用FileStream.Lock().

这是.NET Core 3.1 的 API 文档,其中包括一个示例 .NET 程序,该程序也专门锁定文件,这应该会'EBUSY: resource busy or locked'在尝试访问同一文件的节点 JS 程序中触发错误。

FileStream.Lock()API 调用签名为:

public virtual void Lock (long position, long length);

您可以将位置设置为 0 并将长度设置为文件的长度来调用它。FileStream.Lock()在 Windows 上允许锁定文件范围。


推荐阅读