C#类型为'的未处理异常;系统。未经授权的访问异常';发生在mscorlib.dll中

C#类型为'的未处理异常;系统。未经授权的访问异常';发生在mscorlib.dll中,c#,wpf,installation,C#,Wpf,Installation,各位早上好, 我已经为应用程序创建了安装向导,当我运行应用程序时,我可以看到instaled文件夹中的txt文件中的数据,但当我尝试编辑txt文件中的数据时,我遇到了一个错误 mscorlib.dll中发生类型为“System.UnauthorizedAccessException”的未处理异常 其他信息:对路径“C:\Program Files(x86)\Jean-Paul Sartre Variety Theatre\CustomerStorage.txt”的访问被拒绝 我不知道在创建安装向

各位早上好,

我已经为应用程序创建了安装向导,当我运行应用程序时,我可以看到instaled文件夹中的txt文件中的数据,但当我尝试编辑txt文件中的数据时,我遇到了一个错误

mscorlib.dll中发生类型为“System.UnauthorizedAccessException”的未处理异常 其他信息:对路径“C:\Program Files(x86)\Jean-Paul Sartre Variety Theatre\CustomerStorage.txt”的访问被拒绝


我不知道在创建安装向导的过程中是否犯了任何错误,我应该在将txt文件添加到文件系统文件夹的过程中进行一些类似权限的操作

授权访问方法解决了这个问题,谢谢大家

public bool GrantAccess(string fullPath)
    {
        DirectoryInfo dInfo = new DirectoryInfo(fullPath);
        DirectorySecurity dSecurity = dInfo.GetAccessControl();
        dSecurity.AddAccessRule(new FileSystemAccessRule(new SecurityIdentifier(WellKnownSidType.WorldSid, null), FileSystemRights.FullControl, InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit, PropagationFlags.NoPropagateInherit, AccessControlType.Allow));
        dInfo.SetAccessControl(dSecurity);
        return true;
    }

授权访问方法解决了这个问题,谢谢大家

public bool GrantAccess(string fullPath)
    {
        DirectoryInfo dInfo = new DirectoryInfo(fullPath);
        DirectorySecurity dSecurity = dInfo.GetAccessControl();
        dSecurity.AddAccessRule(new FileSystemAccessRule(new SecurityIdentifier(WellKnownSidType.WorldSid, null), FileSystemRights.FullControl, InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit, PropagationFlags.NoPropagateInherit, AccessControlType.Allow));
        dInfo.SetAccessControl(dSecurity);
        return true;
    }

您的应用程序是否以管理员权限运行?默认情况下,UAC阻止在没有管理员权限的情况下运行的应用程序写入Program Files文件夹及其子文件夹。如果CustomerStorage是一个可编辑文件,最好将其存储在本地应用程序数据文件夹(c:\Users\\AppData\Local)中的某个位置。是否检查了应用程序是否具有写入权限?还可以重构代码,以使用(){}将
StreamWriter
对象包装在
周围
用于处理/利用自动处理对象的代码块构造。您的应用程序是否以管理员权限运行?默认情况下,UAC阻止在没有管理员权限的情况下运行的应用程序写入Program Files文件夹及其子文件夹。如果CustomerStorage是一个可编辑文件,最好将其存储在本地应用程序数据文件夹(c:\Users\\AppData\Local)中的某个位置。是否检查了应用程序是否具有写入权限?还可以重构代码,以使用(){}将
StreamWriter
对象包装在
周围
用于处理/利用自动处理对象的代码块构造。。