2015-11-02 64 views
1

我的应用使用File.OpenRead来读取csv文件。该进程无法访问该文件,因为它正在被另一个进程使用

在这种情况下,我得到一个错误

该进程无法访问该文件,这个工程除了当csv文件也是在Excel中打开精“C:\ test.csv”,因为它正在使用另一个过程。

发生了什么事? Excel阻止其他应用程序写入文件(以防止冲突)是合理的,但为什么会阻止其他应用程序读取它?有什么办法可以解决它吗?

+2

这里没有真正的问题。 –

回答

2

那么,这不回答为什么?,但解决了如何的问题。有读锁定的文件,像这样的一种方式(关键是FileShare.ReadWrite):

http://coding.infoconex.com/post/2009/04/21/How-do-I-open-a-file-that-is-in-use-in-C

using(FileStream fileStream = new FileStream(
     "logs/myapp.log", 
     FileMode.Open, 
     FileAccess.Read, 
     FileShare.ReadWrite)) 
    { 
     using(StreamReader streamReader = new StreamReader(fileStream)) 
     { 
      this.textBoxLogs.Text = streamReader.ReadToEnd(); 
     } 
    } 
+0

感谢这工作的魅力 –

相关问题