无法在我的逻辑驱动器中创建文件夹 - 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的主要内容,如果未能解决你的问题,请参考以下文章

如何使用python在Mac云驱动器中创建文件[关闭]

与任务调度程序一起使用的应用程序无法在我的 C# 代码中创建目录

我无法在我的 sass 项目中创建每个循环

Django-Admin 和 Django-Summernote 在我的表单中创建一个文件字段

无法使用 eloquent 运行工匠并且无法在我的表中创建新记录

我无法在我的 Rails 应用程序中创建 manifest.json