我正在尝试在特殊路径中制作和保存文本文件,但它无法正常工作。
StreamWriter file = new StreamWriter(@"C:\\Users\\log.txt");
file.Write("Hi macho");
file.Close();
如果我这样写它,它会保存在项目Projects \ log \ log \ bin \ Debug
上StreamWriter file = new StreamWriter("log.txt");
file.Write("Hi macho");
file.Close();
答案 0 :(得分:4)
由于错误消息显示您无权写入此文件夹。
如果我们考虑到Windows,你通常不会写入C:\ users但是写入c:\ users \ yourUserName \ Documents,....
如果您确实要写入受保护的文件夹,则需要管理权限,因此可以选择将您所在的系统告知管理员。这可以通过假冒来实现:
using (new Impersonation(domain, username, password))
{
// do the file access
}
虽然这可以打开pandoras box tbh并且应该避免,因此我强烈建议你只写入为此目的而存在的文件夹。
此外,在某些操作系统中,上述方法无法正常工作(UAC用于那里)。然后,您必须以管理员身份运行应用程序,或者将管理权限regquest嵌入到应用程序清单中,....
在另一个stackoverflow帖子中有更多内容: Write Access to Program Files folder
编辑: 此外还有一个小细节。如果您的程序位于程序文件文件夹中,并且您想要登录程序所在的同一文件夹,则仍会遇到同样的问题。 因此,例如,您的程序位于c:\ program files \ myProgram中,您无法在没有特殊权限的情况下登录(通常称为管理员权限)。
答案 1 :(得分:0)
您可以将文本文件保存在您具有访问权限的特殊路径中。在那里,你可以通过streamwriter方法传递它。
StreamWriter file = new StreamWriter(@"C:\log.txt");
file.Write("Hi macho");
file.Close();