File.AppendAllText抛出FileNotFoundException

时间:2020-03-31 05:36:36

标签: c# internet-explorer exception add-on

我正在开发Internet Explorer加载项,我写了一个附加到浏览器的dll,我发生了一些事件,在我内部,我正在使用File.AppendAllText写一些文本文件,这引发了{{1} },我在代码的其他地方使用了FileNotFoundException,如果文件不存在,它将创建一个新文件,我的问题是为什么抛出此异常以及如何避免这种情况。

我找到了this的答案,但是它没有说明如何避免该错误(即在没有发生此异常的情况下写入文件),也没有怀疑这是“文档错误”

这里有文件:

AppendAllText

以下是引发错误的行:

static string assem = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
static string logPath = Path.Combine(assem, "Log.log");

以下是例外:

enter image description here

2 个答案:

答案 0 :(得分:1)

可能是IE阻止了扩展名以写入本地文件,请尝试在浏览器中取消选中“保护模式”

工具-> Internet选项->安全->解开“启用保护模式”

答案 1 :(得分:0)

异常类型有点误导;在某些方面,最好抛出ArgumentException。您看到此异常的原因是您提供的路径不是有效的文件路径(它包含无效字符或> 255个字符)。

现在在调试器中的代码中检查路径的值,打开命令提示符并发出以下命令以查看是否可以写入该路径:

echo "Testing creating a file at this path" > "C:\Path\To\Your\File.txt"

我会猜测路径包含一个不存在的目录(例如,您的路径为C:\Path\To\Your\File.txt,但Path目录不包含To子目录)。 / p>