1
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 Error : Access Denied 管理者として実行しても結果は同じです

4

1 に答える 1

2

あなたのコードを書き直して、自分のマシンでテストしました。このコードは私にとってはうまくいきます。ただし、コードも同様であるため、Program Files への書き込み権限は必要ありません。

文字列を手動で追加する代わりに、Path.Combine(...) を使用する必要があります。

var ttg = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "TimeTableGenerator");
Directory.CreateDirectory(ttg);
于 2013-08-08T19:26:14.923 に答える