6

我正在阅读File.AppendAllTextmsdn 的方法

http://msdn.microsoft.com/en-us/library/ms143356.aspx

我看到他们已经列出FileNotFoundException了该方法的可能例外列表,但根据同一页面上关于方法的描述

打开文件,将指定的字符串附加到文件,然后关闭文件。如果文件不存在,此方法创建一个文件,将指定的字符串写入文件,然后关闭文件。

这部分

如果文件不存在,此方法创建一个文件

似乎这个方法永远不会抛出这个异常。

4

3 回答 3

7

如果你看一下(比如说)Mono 的实现(它与微软的兼容),所有File.AppendAllText最终都会做的(除了参数检查之外)是StreamWriter用你的路径创建 a 并Write在该对象上调用 a 。

FileNotFoundException据我所知,使用的构造函数和方法都没有列出来抛出 a ,所以它可能是一个文档错误。

于 2013-01-31T13:29:36.980 回答
0

该线程可能很旧,但是One-man-crew上面给出的正确答案被其他人忽略了。事实是 FileNotFoundException 不是拼写错误。它存在,我明白了。原因在异常消息中,如下所示:“找不到路径的一部分”。如前所述,如果文件不存在,File.AppendAllText 将打开该文件,但它必须具有有效路径

于 2014-10-29T12:53:17.097 回答
0

我面临着同样的问题。问题是我提供的路径不可用。

AppendAllLines 或 AppendAllText 不会创建路径,它只会创建文件。

为了解决这个问题,我使用 System.IO.Directory.CreateDirectory("Folder Path"]) 创建了路径。

然后我使用了 AppendAllLines 和 AppendAllText 方法。

于 2021-09-28T07:41:20.577 回答