我正在开发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");
以下是例外:
答案 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>