我正在尝试编写一个xml文件并将其附加到电子邮件中。如果我给它个人文档文件夹的路径(即C:\users\myname\Documents\Test.xml
),它的效果很好,但如果我尝试将其更改为C:\\Test.xml
,我会收到以下错误消息:
UnauthorizedAccessException是未处理的路径访问 “C:\ Test.xml”被拒绝。
(我不能发布照片)
对此有什么好的解决方法?
答案 0 :(得分:1)
要获取启动应用程序的目录,您可以使用AppDomain.CurrentDomain.BaseDirectory
关于管理员权限:
检查用户是否使用Run as Administrator
启动了应用程序。
在这种情况下,用户应具有管理权限来编写..这是示例代码..
var identity = WindowsIdentity.GetCurrent();
var principal = new WindowsPrincipal(identity);
if (principal.IsInRole(WindowsBuiltInRole.Administrator))
{
//Application is Running as ADMIN
}
您可以随时将其写入TEMP
或LOCAL APP DATA
文件夹..
var temp = Path.GetTempPath();
//e.g: C:\Users\UserName\AppData\Local\Temp\test.xml
var testFilePath = Path.Combine(temp, "test.xml");
答案 1 :(得分:0)
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly()。CodeBase)
请参阅How can I get the application's path in a .NET console application?
答案 2 :(得分:0)
并不总是允许编写程序文件夹,而是使用%TEMP%文件夹。