无法在我的逻辑驱动器中创建文件夹 - UnauthorizedAccessException: Access denied
Posted
技术标签:
【中文标题】无法在我的逻辑驱动器中创建文件夹 - UnauthorizedAccessException: Access denied【英文标题】:Can't create a folder in my logical drive - UnauthorizedAccessException: Access denied 【发布时间】:2013-08-08 19:09:23 【问题描述】:System.Security.AccessControl.DirectorySecurity ds = new System.Security.AccessControl.DirectorySecurity();
string useraccountForDirectoryCreate = System.Environment.UserDomainName;
ds.AddAccessRule(new System.Security.AccessControl.FileSystemAccessRule(useraccountForDirectoryCreate,
System.Security.AccessControl.FileSystemRights.FullControl,
System.Security.AccessControl.InheritanceFlags.ContainerInherit |
System.Security.AccessControl.InheritanceFlags.ObjectInherit,
System.Security.AccessControl.PropagationFlags.None,
System.Security.AccessControl.AccessControlType.Allow));
Directory.CreateDirectory(folder.Text,ds);
Directory.CreateDirectory(folder.Text + "\\timetables",ds);
我正在尝试在我的逻辑驱动器中创建一个文件夹但我不断收到异常: UnauthorizedAccessException 错误:访问被拒绝我什至以管理员身份运行仍然是相同的结果
【问题讨论】:
您使用什么用户帐户来创建文件夹?您是否有权限(或该帐户下运行的应用程序)创建文件夹(写入权限) 应用程序运行情况如何?你是在 Windows 服务、IIS 下运行,还是自己双击执行? 它是一个可执行文件,并且我是管理员,我研究了文件权限,我什至尝试了这个(添加了一些新代码)给出了不同类型的错误 IdentityNotMappedException 发生了。 这个异常一般表示程序进程没有足够的权限。 不显示代码,我们无能为力:)。很可能是您运行的帐户没有写入文件夹的权限。或者应用程序需要以管理员身份执行(UAC 设置可以在您的操作系统上应用) - 所以右键单击 > 以管理员身份运行。 【参考方案1】:我重新编写了您的代码并在我的机器上进行了测试。这段代码对我有用;但是,您的代码也是如此,因此您必须没有对 Program Files 的写入权限。
您应该使用 Path.Combine(...) 而不是手动附加字符串。
var ttg = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "TimeTableGenerator");
Directory.CreateDirectory(ttg);
【讨论】:
以上是关于无法在我的逻辑驱动器中创建文件夹 - UnauthorizedAccessException: Access denied的主要内容,如果未能解决你的问题,请参考以下文章
与任务调度程序一起使用的应用程序无法在我的 C# 代码中创建目录
Django-Admin 和 Django-Summernote 在我的表单中创建一个文件字段