C# 在C中使目录名为只读#

C# 在C中使目录名为只读#,c#,permissions,directory,readonly,C#,Permissions,Directory,Readonly,我的问题是,我想创建一个新文件夹,让用户无法(或相当困难地)更改其名称或删除它。问题是,用户必须能够访问该文件夹中包含的文件,并以任何方式更改它们。使用我在网上找到的例子,我所得到的只是无法更改文件夹中的文件,而不是文件夹本身 提前感谢;) 这可能会有帮助 您似乎希望允许“创建文件/写入数据”权限,但不允许“控制”父文件夹 您应该能够设置ACL来执行此操作。给他们“列出文件夹内容”的权限,然后有选择地给他们额外的扩展权限,而不给他们修改属性的权限 服务回答是个坏主意。我可能会工作,但这不是最

我的问题是,我想创建一个新文件夹,让用户无法(或相当困难地)更改其名称或删除它。问题是,用户必须能够访问该文件夹中包含的文件,并以任何方式更改它们。使用我在网上找到的例子,我所得到的只是无法更改文件夹中的文件,而不是文件夹本身

提前感谢;)

这可能会有帮助

您似乎希望允许“创建文件/写入数据”权限,但不允许“控制”父文件夹

您应该能够设置ACL来执行此操作。给他们“列出文件夹内容”的权限,然后有选择地给他们额外的扩展权限,而不给他们修改属性的权限


服务回答是个坏主意。我可能会工作,但这不是最好的方式。具有windows目录和文件夹安全性的密钥是文件夹的“所有者”。作为管理员,您始终可以拥有文件夹或文件的所有权。但是,如果文件有不同的所有者,并且该所有者已授予您权限,则在您进入并获得所有权之前,您将不会拥有任何其他权限

您要做的是在计算机上创建一个特殊帐户(通常称为服务帐户),这是程序运行时所使用的标识。此帐户具有管理员权限,并且是其创建的任何文件的所有者。然后,它可以允许它想要授予它创建的文件和文件夹的用户的任何访问权限


如果管理员愿意,他们将始终能够获得所有权,但大多数用户甚至不知道如何做到这一点。

只要该文件夹是由用户的帐户创建的(假设您通过应用程序以编程方式创建该文件夹),用户就可以编辑该文件夹。保护该文件夹不被篡改的最佳方法是编写一个非常小的windows服务,使该文件夹始终处于打开状态,从而防止删除/重命名。

用户是否仍然能够单击“允许”窗口(如果他/她是管理员)?我真的认为你的答案是最完整的,但我有点在最后期限,所以我想我会选择服务一。谢谢@t0xe-查看其他注释。因此,在这种情况下,允许窗口甚至不会出现,用户将被“阻止”,这正是我需要的!我确实想过使用一个额外的帐户,但我不知道如何创建一个帐户,不在登录窗口中显示它并为它设置管理员权限。。我来了!如果我有这个名声,我会+1你的答案;)非常感谢你!太好了,很乐意帮忙。接受答案也表明它很有帮助。非常感谢,我真的很喜欢黑客类型的解决方案,它给了我想要的;)