【发布时间】:2011-06-30 18:04:16
【问题描述】:
我正在用 C#/.NET 制作一个小应用程序,用于监视文件的创建,并在创建文件时获取其内容,对其进行解析并将其写入另一个文件。
到目前为止一切正常。但问题是:还有另一个进程也在监视这个文件。我的进程只是读取文件,而第二个进程读取它然后删除它。
我的应用程序正在完成它的工作,但是当它读取文件时,其他进程无法读取它并完全崩溃(不是我制作的,也没有修复它的资源)。
我的应用程序运行得非常快,其他打开文件的时间很短,以获取内容并将其放入变量中,以便它可以更快地关闭文件,然后解析变量中文件的内容。
我显然不知道如何,但我希望能够读取文件并让其他人同时读取文件而不会出现任何问题。是否可以?我仍然认为文件在其他应用完成解析后被删除的事实会有问题......
有什么建议或想法吗?
非常感谢!
【问题讨论】:
-
听起来问题不在于读取,而是其他进程在锁定读取访问权限时尝试修改(删除)文件。整个设置听起来很粗略,因为您只是希望您的进程首先注意到该文件。任何数量的因素都可能使这非常不可靠。
-
您是否可以控制创建文件的过程?如果是这样,让它创建两个文件,然后读取一个未被您无法控制的进程使用的文件。
-
@jamietre :我知道粗略的因素,不用担心;)但这只是为了收集真实的使用数据以用于我现在正在开发的新版本。所以可靠性不是很重要。 @Michael:不,我没有任何控制权,如果我有,我就不会制作复制数据的程序:P 谢谢!
标签: c# .net timer filesystemwatcher