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

本文关键字:创建 文件夹 权限 | 更新日期: 2023-09-27 18:06:54

我试过这个代码

        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目录中创建文件夹与完全权限和一个,我有访问数据库,当我手动安装我的项目,我需要给权限有任何解决方案给编程?

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

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

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

用下面的

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

这样做,您的应用程序将以管理员权限运行,并可以访问c驱动器。

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