我的应用使用File.OpenRead
来读取csv文件。该进程无法访问该文件,因为它正在被另一个进程使用
在这种情况下,我得到一个错误
该进程无法访问该文件,这个工程除了当csv文件也是在Excel中打开精“C:\ test.csv”,因为它正在使用另一个过程。
发生了什么事? Excel阻止其他应用程序写入文件(以防止冲突)是合理的,但为什么会阻止其他应用程序读取它?有什么办法可以解决它吗?
我的应用使用File.OpenRead
来读取csv文件。该进程无法访问该文件,因为它正在被另一个进程使用
在这种情况下,我得到一个错误
该进程无法访问该文件,这个工程除了当csv文件也是在Excel中打开精“C:\ test.csv”,因为它正在使用另一个过程。
发生了什么事? Excel阻止其他应用程序写入文件(以防止冲突)是合理的,但为什么会阻止其他应用程序读取它?有什么办法可以解决它吗?
那么,这不回答为什么?,但解决了如何的问题。有读锁定的文件,像这样的一种方式(关键是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();
}
}
感谢这工作的魅力 –
这里没有真正的问题。 –