我遇到了一个我无法捕捉到的错误,它不应该存在。
if (System.IO.File.Exists (PathToMyFile))
{
try{
FileStream fs = new FileStream(PathToMyFile, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
Byte[] bytes = br.ReadBytes((Int32)fs.Length);
br.Close();
fs.Close();
myFile =Convert.ToBase64String (bytes) ;
}
catch{}
}
出于某种原因,有时我会遇到一个异常错误,即文件不存在,而它肯定存在。第一个"如果语句"甚至说它在那里,但当我试图打开文件时,有时会遇到一个巨大的应用程序崩溃,而捕获并没有"捕获"。
正如我所说,这是一个随机错误,大多数时候代码都是完美的,但偶尔似乎会出现应用程序停止工作的错误。
首先要确保关闭文件\流
所以你可以调用fs。Close()或使用
if (File.Exists(pathToMyFile))
{
try
{
using (var fs = new FileStream(pathToMyFile, FileMode.Open, FileAccess.Read))
{
BinaryReader br = new BinaryReader(fs);
Byte[] bytes = br.ReadBytes((Int32) fs.Length);
br.Close();
fs.Close();
myFile = Convert.ToBase64String(bytes);
}
}
catch
{
// Log exception
}
}
其次,如果您需要以字符串形式读取文件,只需使用
if (File.Exists(pathToMyFile))
{
try
{
myFile = File.ReadAllText(pathToMyFile);
}
catch
{
// Log exception
}
}