我一直在使用File.ReadAllText来获取一些csv,但每次忘记在Excel中关闭文件时,应用程序都会抛出异常,因为它无法访问该文件。
(对我来说似乎很疯狂,我的意思是ReadAllText中的READ似乎很清楚)
我知道File.Open有所有的花里胡哨,但有没有'中间'方法,不涉及搞乱缓冲区和字符串数组?
是的,我很懒,所以先投我一票,先给我答案:)
答案 0 :(得分:56)
我想你只想要以下内容:
using (var fileStream = new FileStream("foo.bar", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (var textReader = new StreamReader(fileStream))
{
var content = textReader.ReadToEnd();
}
FileAccess.Read
参数非常重要,表示您只想读取文件。当然,即使这样做,该文件也必须由Excel以 read-share 模式打开(参见.NET中的FileShare
枚举)。我没有测试过,所以我不能保证Excel会这样做,尽管我希望它能做到。
答案 1 :(得分:0)
如果要指定文件共享标志以打开正在使用的文件,则会遇到File.Open()。