问题标签 [file-locking]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
53278 浏览

c# - 如何删除被 C# 中的另一个进程锁定的文件?

我正在寻找一种方法来删除被另一个使用 C# 的进程锁定的文件。我怀疑该方法必须能够找到哪个进程正在锁定文件(也许通过跟踪句柄,尽管我不确定如何在 C# 中执行此操作)然后关闭该进程,然后才能使用File.Delete().

0 投票
3 回答
2267 浏览

java - Forcing file deletion on Windows from Java

Is there a programatic way from java to force a file deletion on windows even if the file is locked by some process? I cannot kill the process that locks the file.

0 投票
3 回答
1793 浏览

c++ - 使用 C++ 在 Linux 上锁定/防止编辑源文件

如何在 Linux 上使用 C++ 以编程方式锁定/解锁或阻止/启用编辑源文件。

我希望能够锁定源文件,这样如果我在编辑器中打开它,它就不允许我保存回同一个源文件。

我正在考虑可能将权限更改为只读(稍后将其更改回读写):我如何从 C++ 中做到这一点?

0 投票
4 回答
25880 浏览

c# - 如何解锁被 .NET 中的进程锁定的文件

我希望我的应用程序清理它使用的所有临时文件,问题是并非所有临时文件都在我的控制之下,所以我只想“粗暴地”解锁它们以便以编程方式删除它们。

0 投票
6 回答
150821 浏览

c# - 如何找出使用 .NET 锁定文件的进程?

我已经看到了几个关于使用HandleProcess Monitor的答案,但我希望能够在我自己的代码(C#)中找出哪个进程正在锁定文件。

我有一种讨厌的感觉,我将不得不在 win32 API 中进行探索,但如果有人已经这样做并且可以让我走上正确的轨道,我将非常感谢您的帮助。

更新

类似问题的链接

0 投票
3 回答
2448 浏览

c# - 使用 WinForms 应用程序中的解锁器解锁文件?

我正在尝试使用解锁器从 C# 程序中解锁文件。

在我的 UI 中,我放了一个按钮来解锁应用程序无法删除的文件。当用户按下按钮时,我希望打开解锁器(著名的应用程序)。

我在 Unlocker web 上阅读过,并且有一些关于要使用的命令行的解释,但没有任何作用。

我编写了以下代码,但没有任何反应:

"c:\Program Files\unlocker\unlocker.exe" -L "PATHFORTHEFILE.doc"

什么都没发生。我试过不带参数和-LU。

任何想法?

比解锁器更有效地将其与软件集成的东西?

0 投票
14 回答
208203 浏览

python - 在 Python 中锁定文件

我需要锁定一个文件以便用 Python 编写。它将同时从多个 Python 进程访问。我在网上找到了一些解决方案,但大多数都因我的目的而失败,因为它们通常仅基于 Unix 或基于 Windows。

0 投票
4 回答
158 浏览

unix - 如何让人类和程序访问同一个文件而不互相踩到对方的脚趾

假设我有一个文件 urls.txt,其中包含我正在监视的 URL 列表。我的监视脚本偶尔会编辑该文件,例如,以指示每个 URL 是否可访问。我还想手动编辑该文件,以添加或更改 URL 列表。我怎样才能允许这样我在手动编辑时不必考虑它?

以下是一些可能的答案。你会怎么做?

  1. 从事黑客活动,例如让程序检查 vim 或 emacs 创建的锁定文件。因为这只是为了我,所以这实际上会起作用。

    • 如果人工编辑始终优先,则始终让人工破坏程序的更改(例如,忽略编辑器关于文件已在磁盘上更改的警告)。然后程序可以在下一个循环中重做它的更改。尽管如此,在用户编辑文件时更改文件并不是那么好。

    • 永远不要让人接触程序正在进行修改的文件。重新考虑设计并拥有一个只有人工编辑的文件和另一个只有程序编辑的文件。

    • 为人类提供一个自定义工具来编辑执行适当文件锁定的文件。这可能与锁定文件然后启动编辑器或自定义界面(可能是简单的命令行界面)一样粗略,用于从文件中插入/更改/删除条目。

    • 使用数据库而不是平面文件,然后自动处理所有锁定。

(请注意,我编写了 URL 监控示例以使其更加具体,并且因为我实际上想到的可能太奇怪和分散注意力——这个问题严格来说是关于如何让人类和程序都修改同一个状态文件。)

0 投票
4 回答
5481 浏览

c# - FileSystemWatcher.WaitForChanged 返回,但文件上仍有锁

我有一个程序可以将文档发送到 pdf 打印机驱动程序,并且该驱动程序会打印到特定目录。打印后,我想将 pdf 附加到电子邮件 (MailMessage) 并发送出去。

现在,我将文档发送到打印机(它会产生一个新进程),然后调用 FileSystemWatcher.WaitForChanged(WaitForChangedResult.Created) 但是当创建对象时,它仍然没有完成“打印”并且 pdf 打印机仍然有一个锁定它,当我尝试将该文件附加到电子邮件时抛出错误。

  • 我考虑过一个普通的 Thread.Sleep(2000) 或其他什么,但这远不理想。
  • 我考虑将附件代码放在 try/catch 块中并在失败时循环,但同样,这只是个坏消息。

我真的想不出一个优雅的解决方案。

0 投票
6 回答
7765 浏览

visual-studio-2008 - TFS 不允许文件夹重命名,声称有锁

在 Visual Studio 2008 中,由于名称中的拼写错误,我想重命名文件夹。我在解决方案结构中重命名它。文件夹和 .CSProj 文件现在已签出,我签入。

TFS 返回“Microsoft Visual Studio 目前无法执行源代码管理操作,因为该操作涉及的某些文件已锁定。请稍后重试该操作”。

查看源代码管理资源管理器,我可以确认文件夹和其中的文件根本没有被签出。.csproj 和 csproj.vspscc 由另一位用户“编辑”。

这里发生了什么?

如果我尝试撤消更改,我会收到相同的消息。在撤消更改之前,我必须强制获取最新版本。这也是怎么回事?

最终的解决方法是让所有其他用户签入 .csproj,然后在源代码管理资源管理器中重命名文件夹。在这一点上,它起作用了,尽管以前没有起作用。

重命名签入成功,并且在后续签入中清除了对旧名称的引用。