0

在我的代码的某处,我有这一行:

return _store.OpenFile(path, fileMode);

fileMode有时FileMode.Create有时FileMode.Open。_ 一切正常,我总是得到一个有效的流,如有必要,文件已正确创建。

但是,我刚刚在我的 VS 输出中发现,每次调用上述行所在的方法时,我都会收到以下消息:

mscorlib.dll 中出现了“System.IO.FileNotFoundException”类型的第一次机会异常

创建文件时出现此错误,并且文件被覆盖(并且显然存在)时也会出现此错误。

我只是对这些错误感到好奇,因为一切都很完美。

谢谢,

编辑:new IsolatedStorageFileStream(...). 一切正常,但我仍然收到“第一次机会异常”消息。

4

2 回答 2

0
var isf = IsolatedStorageFile.GetUserStoreForApplication();
IsolatedStorageFileStream isfs;

if (!isf.FileExists(_filename))
    isfs = new IsolatedStorageFileStream(_filename, System.IO.FileMode.Create, isf);
else
    isfs = new IsolatedStorageFileStream(_filename, System.IO.FileMode.Open, isf);


var writer = XmlWriter.Create(isfs);
xml.Save(writer);

writer.Close();
isfs.Close();
isfs.Dispose();
isf.Dispose();
于 2012-11-30T11:45:23.650 回答
0

找到了答案。

这正是 VS 调试器的工作方式:对于被 {{catch}} 块捕获的每个异常,VS 输出中都会出现“第一次机会异常”消息。所以在这里,我们可以猜测,在内部,{{OpenFile}} 方法使用 try/catch 块来检查文件是否存在。

于 2012-12-18T09:17:18.957 回答