File.WriteAllText真的会引发FileNotFoundException吗

本文关键字:FileNotFoundException WriteAllText 真的 File | 更新日期: 2023-09-27 18:25:05

文档说明:

// Summary:
//     Creates a new file, writes the specified string to the file, and then closes
//     the file. If the target file already exists, it is overwritten.

第一行,第一句:Creates a new file,在它列出的例外情况上:

//   System.IO.FileNotFoundException:
//     The file specified in path was not found.

在哪种情况下会发生这种情况?如果它总是创建一个文件,那么它就不应该抛出FileNotFoundException。。。

文件有错吗?或者它可能缺少<remarks>标签?

File.WriteAllText真的会引发FileNotFoundException吗

File.WriteAllText最终调用:

private static void InternalWriteAllText(string path, string contents, Encoding encoding)
{
    using (StreamWriter streamWriter = new StreamWriter(path, false, encoding))
    {
        streamWriter.Write(contents);
    }
}

在调用InternalWriteAllText之前抛出的所有异常都会抛出ArgumentExceptionArgumentNullException,但理论上(由于FileStream可以抛出异常)streamWriter.Write(contents);可能会抛出异常。但根据它的功能和streamWriter的打开方式,这是非常不可能的。

我不一定会说医生本身是错误的,更多的是MS通过记录(非常罕见的)可能性来掩盖他们的屁股。

来源:使用ILSpy解压缩mscorlib v4.0.0。

更新

刚刚检查了mscorlib v2.0.0.0,除了它包含较少的健全性检查(这意味着它基本上直接转换为上面的代码)之外,其他情况相同。

相关文章:
  • 没有找到相关文章