FileNotFoundException in File.AppendAllText

本文关键字:AppendAllText File in FileNotFoundException | 更新日期: 2023-09-27 17:56:54

我正在从msdn读取File.AppendAllText方法

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

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

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

这部分

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

似乎永远无法为此方法抛出此异常。

FileNotFoundException in File.AppendAllText

如果你看一下 Mono 的实现(它与 Microsoft 的实现兼容),File.AppendAllText最终所做的(除了参数检查)就是用你的路径创建一个StreamWriter并在该对象上调用Write

据我所知,使用的构造函数和方法都没有在任何地方列出以抛出FileNotFoundException,因此这可能是文档错误。

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

我遇到了同样的问题。问题是我提供的路径不可用。

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

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

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