繁体   English   中英

拒绝访问路径****

[英]Access to path **** is denied

我知道已经有很多东西了,尝试了一些东西,但是没有运气来修复它。

我有一个C#程序,该程序已构建XML文档,并试图将其保存到MyDocuments中的文件夹中。 调用XMLDoc.Save函数时出现愚蠢的异常。

拒绝访问路径“ C:\\ Users \\ Ash \\ Documents \\ ConfigOutput”

我有以管理员身份运行的Visual Studio。 关于如何解决它的任何想法?

我尝试将其保存到桌面上以及保存到C:\\文件夹中。

我正在使用Windows 7。

运行生成的可执行文件似乎也无法正常工作。

道歉的家伙,看来我很傻。 我确实没有在输出路径中添加文件名。 万一其他人被这个陷阱搞砸了,我不会删除这个问题! 感谢您的所有帮助/评论。

有几种可能性:

  • ConfigOutput是一个文件夹
  • ConfigOutput是一个正在使用(打开)的文件
  • 您尚未以“ Ash”用户身份登录

通常,您不必以管理员身份运行即可写入自己的Documents文件夹。

你需要检查并获得许可,该目录/文件你的写作..对于使用Security namesapce

var permissionSet = new PermissionSet(PermissionState.None);    
var writePermission = new FileIOPermission(FileIOPermissionAccess.Write, pathToFolder);
permissionSet.AddPermission(writePermission);

if (permissionSet.IsSubsetOf(AppDomain.CurrentDomain.PermissionSet))
{
    // do your stuff
}
else
{
    // alternative stuff
}

似乎您没有指定文件名,因此无法创建与现有目录同名的文件-因此请尝试将路径更改为:

C:\\ Users \\ Ash \\ Documents \\ ConfigOutput \\ Out.xml

尝试以管理员身份运行您的应用。

如果要调试应用程序,请以管理员身份启动Visual Studio。

要以管理员身份强制启动应用程序,请看一下以下线程: 如何强制.NET应用程序以管理员身份运行?

PS检查您的文件是否尚未被其他FileStream等打开。

我不知道这是否有所不同,但是您可能想以相对而非绝对的方式指定文件夹: Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)将为您提供当前用户文档的路径。 检查它是否与您提供的不同。

如果是这样,您可能需要像其他人指出的那样,在其他用户或管理员下运行该应用程序。 显然,不允许一个用户将文件保存到另一用户的文档文件夹中。

对我来说,当我从Visual Studio调试应用程序时,documents文件夹与我当前登录并在其下运行Visual Studio的用户相同。

您可以先尝试<requestedExecutionLevel level="asInvoker" uiAccess="true|false"/>然后逐步移至highestAvailablerequireAdministrator

或者,要求权限,捕获异常并打印出来:

try {
        FileIOPermission fileIOPermission = new FileIOPermission(FileIOPermissionAccess.AllAccess, myDocFolderFile);
        fileIOPermission.Demand();
    } catch (SecurityException se) {
        Debug.WriteLine(se.ToString());
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM