对于我的学校项目,我试图通过TCP套接字从我的覆盆子与Windows iot通信到PC。一切正常,但我想记录流量,并意识到出现问题。
所以我编写了这个LogFilewriter:
public static void write(string message)
{
using (StreamWriter w = File.AppendText("\\" + "log.txt"))
{
logging(message, w);
}
}
public static void logging(string logMessage, TextWriter w)
{
w.Write("\r\nLog Entry : ");
w.WriteLine("{0} {1}", DateTime.Now.TimeOfDay, DateTime.Now.Date);
w.WriteLine(" :");
w.WriteLine(" :{0}", logMessage);
w.WriteLine("-------------------------------");
}
问题是,如果我调用Log.write(message) - (Log是类),它会抛出以下异常:
块引用 抛出异常:' System.UnauthorizedAccessException'在System.IO.FileSystem.dll
中
有人知道为什么会抛出这个异常吗?
答案 0 :(得分:0)
使用true的Streamwriter,会将内容附加到文件
using (StreamWriter w = new StreamWriter("\\" + "log.txt", true))
{logging(message, w);}
答案 1 :(得分:0)
是不是和普通的窗户一样?您无法写入与EXE相同的文件夹,因为权限不允许。无论是那个还是因为应用程序都是沙箱化的。
我认为这解释了吗?
它说,
我认为您应该使用StorageFile和StorageFolder来处理UWP应用程序。我们使用它们并且到目前为止没有任何问题。当我尝试在第一个版本中使用File类时,它根本不可用。
现在可能已经改变了。尝试将文件保存在“C:\ Users \ USERNAME \ AppData \ Local \ Packages \ YOURPACKAGE”中的文件中。应用程序应该可以访问那里,也许你可以使用File类。
阅读整篇文章,因为它还提到文件IO是沙箱,并提供此链接以建议如何写入文件,