如何使用C#中的所有权限在C目录中创建文件夹?

时间:2014-06-06 04:52:29

标签: c# visual-studio-2010

我试过这段代码

        try
        {

            // If the directory doesn't exist, create it.
            if (!Directory.Exists(@"C:\Program Files\Default Company Name\LegendsInvoice1.1\Invoices\"))
            {
                Directory.CreateDirectory(@"C:\Program Files\Default Company Name\LegendsInvoice1.1\Invoices\");
            }
        }
        catch (Exception ec)
        {
            MessageBox.Show(ec.Message);
        }
        //////////////////////
        DirectorySecurity sec = Directory.GetAccessControl(@"C:\Program Files\Default Company Name\LegendsInvoice1.1\Invoices\");
        // Using this instead of the "Everyone" string means we work on non-English systems.
        SecurityIdentifier everyone = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
        sec.AddAccessRule(new FileSystemAccessRule(everyone, FileSystemRights.Modify | FileSystemRights.Synchronize, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow));
        Directory.SetAccessControl(@"C:\Program Files\Default Company Name\LegendsInvoice1.1\Invoices\", sec);

我写的上面的代码但是在cdirectory文件夹中没有创建它的给定错误"访问被拒绝"所以请帮助我如何在c目录中创建具有完全权限的文件夹,还有一个,当我手动安装我的项目时,我有访问数据库我需要给出权限是否有任何解决方案以编程方式提供?

2 个答案:

答案 0 :(得分:0)

有可能。添加"应用程序清单文件"在你的项目中。 寻找

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

将其替换为以下

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

执行此操作,您的应用程序将以管理员权限运行并可以访问c驱动器。

答案 1 :(得分:0)

您的程序需要以管理员身份运行(或者,在启动Visual Studio调试时,Visual Studio需要以管理员身份运行)。默认情况下,除管理员之外的任何人都不允许在C驱动器的根目录下写入。