[英]Access to path **** is denied
我知道已经有很多东西了,尝试了一些东西,但是没有运气来修复它。
我有一个C#程序,该程序已构建XML文档,并试图将其保存到MyDocuments中的文件夹中。 调用XMLDoc.Save
函数时出现愚蠢的异常。
拒绝访问路径“ C:\\ Users \\ Ash \\ Documents \\ ConfigOutput”
我有以管理员身份运行的Visual Studio。 关于如何解决它的任何想法?
我尝试将其保存到桌面上以及保存到C:\\文件夹中。
我正在使用Windows 7。
运行生成的可执行文件似乎也无法正常工作。
道歉的家伙,看来我很傻。 我确实没有在输出路径中添加文件名。 万一其他人被这个陷阱搞砸了,我不会删除这个问题! 感谢您的所有帮助/评论。
有几种可能性:
通常,您不必以管理员身份运行即可写入自己的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"/>
然后逐步移至highestAvailable
和requireAdministrator
。
或者,要求权限,捕获异常并打印出来:
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.