File.AppendAllText 抛出 FileNotFoundException

File.AppendAllText throws FileNotFoundException

我正在开发 Internet Explorer 插件,我写了一个附加到浏览器的 dll,我有一些事件,在 ot 里面我正在用 File.AppendAllText 写入一些文本文件,这会抛出 FileNotFoundException,我在代码的其他地方使用 AppendAllText,如果文件不存在,它会创建一个新文件,我的问题是为什么会抛出这个异常,我该如何避免。

我找到了 this 答案,但它没有说明如何避免错误(即写入文件而不会出现此异常),也没有理解这是一个 "documentation error"

这里是文件路径:

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

此处显示错误的行:

File.AppendAllText(logPath, "some text" + Environment.NewLine);

这里是例外:

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

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

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

我会加快猜测该路径包含一个不存在的目录(例如,您的路径是 C:\Path\To\Your\File.txtPath 目录不包含 To 子目录) .

可能 IE 阻止扩展写入本地文件,尝试取消选中 "Protected mode" int 浏览器

工具 --> Internet 选项 --> 安全 --> 解锁 "Enable Protected Mode"