2012-07-12 67 views
0

我试图打开一个文件,但我收到:错误试图打开一个文件从一个目录

该进程无法访问该文件“X:\子\ Prozess A.1.1.wkd” 因为它正在被另一个进程使用。

任何人都可以帮忙吗?

string activeDirectory = @"X:\SubGraph\"; 
string[] files = Directory.GetFiles(activeDirectory); 
foreach (string fileName in files){ 
    FileStream file = new FileStream(fileName, FileMode.Open, FileAccess.Read); 
    .... 
    .... 
} 
+3

听起来很愚蠢,但你有没有确保该文件没有被其他进程使用?您可以尝试重新启动,以便您知道应该没有其他进程,除非它们是对该文件具有锁定的系统进程。 – CSharpened 2012-07-12 10:23:49

+0

我怎么知道哪个进程正在使用此文件 – User1979 2012-07-12 10:25:53

+1

下载[进程监视器](http://technet.microsoft.com/en-us/sysinternals/bb896645)以查明。 – Oded 2012-07-12 10:27:25

回答

1

请尝试通过给FileShare.Read

FileStream s2 = new FileStream(name, FileMode.Open, FileAccess.Read, FileShare.Read); 

采取从MSDN将它开到FileShare.Read允许用于读取的 文件随后打开。如果未指定此标志,则任何到 的请求都会打开文件以供读取(通过此进程或其他进程)将 失败,直到文件关闭。但是,即使指定了此标志 ,仍可能需要其他权限才能访问 文件。

+0

它没有帮助,有时它有时不工作 – User1979 2012-07-12 10:38:14

相关问题