独占式文件锁定3

这是一个非常硬核的系统级需求。你想要的是 强制性锁定(Mandatory Locking)

在 Node.js/Electron 的标准 fs 模块中,fs.open 打开的文件默认通常是允许“共享读写”的,这意味着虽然你打开了文件,外部程序(如记事本)可能仍然能读取甚至修改它(取决于 OS 及其共享标志)。

要实现“只能在你的 IDE 操作,外部完全无法重命名、删除、修改”,你需要绕过 Node.js 的 fs,直接调用操作系统的原生 API(Windows API)。

兼容一键切换是否锁定文件夹

之前介绍了两种锁定文件的形式,

1、句柄占用
2、icacls 权限管理
最后我选择了icacls权限管理,因为它更加灵活,可以针对文件夹和文件分别进行权限控制。

问题,icacls管理 是可行的,但是我担心后面又不想要权限管理了(这个取决于需求)
研究后发现改动点其实主要在文件和文件夹的修改 保存 删除 重命名 的方式不一样。
icacls 都是先解锁 然后操作 然后上锁
正常模式就是没有解锁上锁的过程
目前就是要兼容这两种 一键切换。

独占式文件锁定_icacls

这是一个非常必要的工具脚本。因为一旦开发过程中 App 崩溃或者调试中断,文件夹就会保持在“拒绝写入”的状态,连你自己都删不掉它。

这个脚本作为一个独立的 Node.js 运维脚本,不依赖 Electron,直接在终端运行即可救急。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器