无法在我的逻辑驱动器中创建文件夹 - UnauthorizedAccessException:拒绝访问

时间:2013-08-08 19:09:24

标签: c# unauthorizedaccessexcepti

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错误:访问被拒绝我甚至以管理员身份运行仍然是相同的结果

1 个答案:

答案 0 :(得分:2)

我重新编写了代码并在我的机器上进行了测试。这段代码对我有用;但是,您的代码也是如此,因此您不能拥有Program Files的写入权限。

您应该使用Path.Combine(...)而不是手动附加字符串。

var ttg = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "TimeTableGenerator");
Directory.CreateDirectory(ttg);