我正在尝试编写一个 xml 文件并将其附加到电子邮件中。如果我给它一个指向我的个人文档文件夹(即C:\users\myname\Documents\Test.xml
)的路径,它会很好用,但是如果我尝试将它更改为类似的东西C:\\Test.xml
,我会收到以下错误消息:
UnauthorizedAccessException is Unhandled 对路径“C:\Test.xml”的访问被拒绝。
(我显然不能发布图片)
什么是一个好的解决方法?
我正在尝试编写一个 xml 文件并将其附加到电子邮件中。如果我给它一个指向我的个人文档文件夹(即C:\users\myname\Documents\Test.xml
)的路径,它会很好用,但是如果我尝试将它更改为类似的东西C:\\Test.xml
,我会收到以下错误消息:
UnauthorizedAccessException is Unhandled 对路径“C:\Test.xml”的访问被拒绝。
(我显然不能发布图片)
什么是一个好的解决方法?
要获取启动应用程序的目录,您可以使用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");
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase)
程序文件夹并不总是允许写入,请改用 %TEMP% 文件夹。