C# 强制关闭要复制的文件

C# 强制关闭要复制的文件,c#,.net,file,file-io,C#,.net,File,File Io,我有一个web应用程序,它每隔10分钟将数据写入一个文件 我有另一个控制台应用程序,可以读取文件并处理数据 问题是:有时候,当console应用程序试图复制文件时,web应用程序正在使用该文件,该文件已过时。这会导致错误,锁定错误 我有两个问题,我怎样才能强制文件从另一个程序关闭,而不是在同一台机器上 另一个与web应用程序相关的问题是,有一段时间并没有向服务器发送请求,文件从未关闭。如何确保在间隔之后关闭文件?后台定时器线程 编辑:操作系统是Windows2003服务器 有什么建议吗?如果您的

我有一个web应用程序,它每隔10分钟将数据写入一个文件

我有另一个控制台应用程序,可以读取文件并处理数据

问题是:有时候,当console应用程序试图复制文件时,web应用程序正在使用该文件,该文件已过时。这会导致错误,锁定错误

我有两个问题,我怎样才能强制文件从另一个程序关闭,而不是在同一台机器上

另一个与web应用程序相关的问题是,有一段时间并没有向服务器发送请求,文件从未关闭。如何确保在间隔之后关闭文件?后台定时器线程

编辑:操作系统是Windows2003服务器

有什么建议吗?

如果您的程序“处理数据”实际上没有修改文件,那么您可以改为以只读方式打开它,避免整个锁定情况。您需要写访问权限吗

您可以通过编写会话计数函数来跟踪会话。当会话数达到零时,可以关闭文件。如果你能给我们提供更多关于你到底想做什么的信息,这样我们就能知道程序的流程,这将是很有帮助的


使用会话开始和会话结束来跟踪会话。这篇文章很好地介绍了跟踪会话的方法。

除非您说明正在运行的操作系统,否则您将无法获得第一个问题的明确答案。据我所知,如果Windows下的文件被另一个进程保持打开状态,则无法关闭该文件,除非杀死另一个进程。。。但我可能是错的,例如,我不知道什么可能在各种Unix实现上起作用,什么可能不起作用。