问题标签 [filelock]
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.
c# - DataSet.WriteXml(XmlTextWriter) 使 XML 文件保持锁定状态
我有一个用 .NET 3.5 编写的程序,它将数据保存到 XML 文件中,之后大部分时间都不会处理它。但是,有时它需要重新读取该 XML 文件。当我尝试执行此操作时,XML 文件读取失败,并显示文件“正在被另一个进程使用”的错误。
下面是执行 XML 文件写入的代码:
下面是尝试读回 XML 文件的代码:
由于 XmlTextWriter.Close() 方法在第一个块中运行,为什么该文件仍在使用中?我也尝试在第一个块中调用 DataSet 上的 Dispose() 方法,但这没有帮助。这里可能缺少什么?
我还测试了在调试模式下运行程序,然后在第一个代码块运行后稍等片刻,然后再继续。它仍然给出了同样的错误,这不是代码运行得如此紧密以至于在尝试读取之前文件写入没有完全释放的问题。
谢谢!
c#-4.0 - 如何等待新文件发布
我正在创建一个新的 *.csv 文件,创建后我想将此文件作为电子邮件的附件发送,但文件被锁定 10 - 15 秒。有什么方法可以等待文件被释放然后发送这个文件而不会出现任何异常:该进程无法访问该文件,因为它正在被另一个进程使用。
如果我等待 Thread.Sleep() 我可以成功发送电子邮件,但我不想使用它。我不知道文件操作完成的确切时间。它是一个控制台应用程序。有什么建议么?
java - 从通过 FileDescriptor FD 获得的 FileOutputStream 覆盖一个属性文件
特殊问题是当我使用从文件路径获得的properties.store
代码时FileOutputStream
,上述方法工作正常,但是当我FileOutputStream
从FileDescriptor
属性文件追加到它时,不会覆盖。
现在我的限制是使用后一种方法,因为我正在使用 FileLock 并且无法再次通过文件获取 FileOutputStream。
- 可能吗?用后一种方法做某事并覆盖和
- 如果不是,我有什么选择?
两段代码是
第一种方法
第二种方法
r - 从 R 中的并行进程写入文件时锁定文件
我在 R 中使用parSapply()
from parallel
package。我需要对大量数据执行计算。即使并行执行也需要数小时,因此我决定使用 定期将结果从集群写入文件write.table()
,因为进程在内存不足或其他随机原因时不时崩溃,我想继续从把它停下来。我注意到我得到的一些 csv 文件行只是在中间被剪切,可能是由于多个进程同时写入文件的结果。有没有办法在执行时对文件进行锁定write.table()
,以便其他集群无法访问它,或者唯一的出路是从每个集群中写入单独的文件,然后合并结果?
c# - 覆盖时文件被锁定
标题解释了一小部分,所以让我解释两个场景。场景 1 引发错误,场景 2 就像一个魅力。
场景一:
我使用以下方法签出文档,当文档保存到已经是具有该名称的文件的位置时,它会被覆盖,但令人惊讶的是,它也出于某种原因锁定了文件:
该方法运行顺利。不会出现问题。但是当我用下面的方法签入文档时,我得到了这个异常:
场景二:
当我使用该SaveDocument
方法将文档保存到没有同名文件的位置时,该文件是新创建的,可以进行编辑或您想用它做什么。
使用场景 2效果很好。如上图所示,该文档已准备好再次签入,而不会收到错误消息。
请求代码:@CodeCaster
----------------------开始编辑--------------- ------------------
---------------------------------结束编辑--------------- ------------------
我的问题:
- 文件被覆盖时被锁定的原因是什么?
- 我怎样才能防止这种情况发生?
- 是否可以设置某种函数或参数使其不会被锁定?
使用名为“Unlocker”的工具,我设法查看了锁定文件的程序,YES -> DMS.exe 是我的应用程序......。:
c# - worksheet.save(),它保持锁定状态
我开发了一个在 excel 中导出大日期的 windows 窗体项目。有时 worksheet.save() 方法需要 1 小时或无限时间。我认为它保持锁定,但我不知道为什么。有没有人有任何想法来解决这个问题?
c# - C#在Assembly.Load时避免文件锁定
我的情况是;
我正在设计一个插件应用程序,基于动态加载插件程序集,多个用户可以运行托管在服务器计算机上的应用程序。应用程序在启动时从我的实时更新服务器自动更新插件程序集。所以插件文件(及其附属 dll 不应该被锁定在文件系统上。
正如预期的那样,没有锁定 dll 文件。但是如果我加载的 dll 本身有静态引用 dll 怎么办?他们现在被锁定在文件系统上。
命名文件,让我们说;
- APP.Exe 是我的基础应用程序;
- PL1.dll 是我的第一个插件,APP.exe 将其加载到新的 Appdomain 中
- PL2.dll 是我的第二个插件,APP.exe 将其加载到新的 Appdomain 中
- PL1_S.dll 是 PL1.dll 插件的静态引用 dll,在 PL1 AppDomain 中加载
- PL_COMMON 是 PL1 和 PL2 插件的静态引用 dll,由 PL1 和 PL2 AppDomains 加载
PL1_S 和 PL_COMMON 也不应该像 PL1 和 PL2 程序集一样锁定在文件中
关于如何解决这个问题的任何想法?
java - 什么是 Apache Camel 的文件“camelLock”?
每当我从file
URI 启动 Camel 路由时,我都会看到 Camel 在文件上获得了“锁定”。例如,如果文件名为myinput.xml
,那么 Camel 在其上创建一个“锁定文件”,位于同一目录中,名为myinput.xml.camelLock
.
- 这是什么以及为什么骆驼使用它?
- Camel什么时候“释放”锁定文件(删除它)?
- 最重要的是,有没有办法将文件 URI 配置为根本不锁定(如果是,如何)?
enterprise-library - 企业库日志记录块 - 锁定文件并且 FTP 无法下载它
我有一个 ASP.Net MVC 5 应用程序,它使用 Ent Lib 6 Logging Application 块。
细节:
- 我的网站托管在共享托管服务器上。
- 我们使用 Filezilla(FTP 客户端)发布和下载文件/日志。
- 在服务器上创建日志文件
问题:
当我尝试使用 FTP 从服务器下载日志文件时,我收到错误消息“550 进程无法访问该文件,因为它正被另一个进程使用。”
这就是我的 web.config 的样子
正如预期的那样,如果我更改我的 Web.config(在服务器上)文件锁定被释放,然后我可以下载它,或者如果我等待足够长的时间,那么锁定也会被释放。但当然,这一切都是不可接受的。那么是否可以从服务器实时获取日志?其他选项可能是使用其他一些日志库。
windows - 卸载程序时,Windows 如何在下次重新启动时删除锁定的文件?
卸载程序时,Windows 如何在下次重新启动时删除锁定的文件?也许有某种预定的过程?