项目中需要读取一个文本文件的内容,调用C#的File.ReadAllLines(path)方法,但是报错,就提示unknown exception,也没其他提示了。
文件是在的,并且,如果把文件拷贝到另外一个路径,再次读取是正常的。
仔细研究了一下,应该是客户电脑上跑了其他程序正在往这个文件里写东西,把文件lock了,导致ReadAllLines()方法读不了。
网上查到了解决办法:
cs
public static string[] readAllLines(String i_FileNameAndPath)
{
string[] o_Lines = null;
List<string> list = new List<string>();
int i = 0;
using (FileStream fileStream = File.Open(i_FileNameAndPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
using (StreamReader streamReader = new StreamReader(fileStream))
{
while (streamReader.Peek() > -1)
{
string line = streamReader.ReadLine();
list.Add(line);
i++;
}
}
}
o_Lines = list.ToArray();
return o_Lines;
}
参考:C# -- Can't read all lines in file that being used by another process -- iTecNote