1

我正在尝试编写一个 xml 文件并将其附加到电子邮件中。如果我给它一个指向我的个人文档文件夹(即C:\users\myname\Documents\Test.xml)的路径,它会很好用,但是如果我尝试将它更改为类似的东西C:\\Test.xml,我会收到以下错误消息:

UnauthorizedAccessException is Unhandled 对路径“C:\Test.xml”的访问被拒绝。

(我显然不能发布图片)

什么是一个好的解决方法?

4

3 回答 3

1

要获取启动应用程序的目录,您可以使用AppDomain.CurrentDomain.BaseDirectory

关于管理员权限:

  1. 检查用户是否使用Run as Administrator. 在这种情况下,用户应该具有管理员权限来编写..这是示例代码..

        var identity = WindowsIdentity.GetCurrent();
        var principal = new WindowsPrincipal(identity);
        if (principal.IsInRole(WindowsBuiltInRole.Administrator))
        {
            //Application is Running as ADMIN
        }
    
  2. 你总是可以把它写给你TEMPLOCAL APP DATA文件夹..

        var temp = Path.GetTempPath();
    
        //e.g: C:\Users\UserName\AppData\Local\Temp\test.xml
        var testFilePath = Path.Combine(temp, "test.xml");
    
于 2013-05-20T15:03:29.077 回答
0

System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly(‌​).CodeBase)

请参阅如何在 .NET 控制台应用程序中获取应用程序的路径?

于 2013-05-20T14:53:24.850 回答
0

程序文件夹并不总是允许写入,请改用 %TEMP% 文件夹。

于 2013-05-20T14:54:28.127 回答