我正在使用文件系统API(在.NET或本机版本中)来尝试打开文件。我收到以下错误消息:
该进程无法访问文件X,因为它正由另一个进程使用。
这个错误意味着什么,我该如何调试?
答案 0 :(得分:2)
此错误的含义:
此错误表示您尝试打开已使用冲突的访问权限和共享设置打开的文件。
该消息具有误导性,因为该文件不一定由其他进程打开。这是一个Win32级别的例外。它只是意味着为该文件打开了另一个句柄。
此错误也适用于目录。
如何调试:
找出应用程序中的哪个进程或组件打开文件但尚未关闭它。您可以使用Sysinternals Process Explorer的“查找句柄”功能来查找有问题的过程并关闭句柄。
如果您自己的代码打开了句柄,则没有一般程序来查找问题。检查您的代码。评论代码,直到错误消失。
常见错误有:
FileStream
:File.Open(path); //leak!
using
语句中包装资源。在大多数情况下,一次性资源应该包含在using
。如何解决:
使用该文件关闭其他应用程序。完成后,请确保关闭文件句柄。使用using
声明。
答案 1 :(得分:0)