[英]C#, How to Traverse all drive and folder to copy image and paste them in a specific folder?
[英]Disable Copy/Paste into a specific folder - C#
我有这个 C# 程序:
TestProgram:
static void Main(string[] args)
{
var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
var directory = Directory.CreateDirectory(Path.Combine(path, "folder"));
using (StreamWriter sw = new StreamWriter(Path.Combine(directory.FullName, "example.txt")))
{
sw.WriteLine("hi");
}
var directorySecurity = directory.GetAccessControl();
var administratorRule = new FileSystemAccessRule("Administrators", FileSystemRights.FullControl, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow);
var usersRole = new FileSystemAccessRule("Users", FileSystemRights.Read, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow);
directorySecurity.AddAccessRule(administratorRule);
directorySecurity.AddAccessRule(usersRole);
directory.SetAccessControl(directorySecurity);
}
所以,我想创建一个只有Administrators
可以编辑名称和内容的目录。
为了测试这个代码片段,我已经将此目录复制到C:
并且我创建了一个Users
组成员的usertest
并停止。 这很好用,因为usertest
无法编辑example.txt
。 但是,如果我(作为usertest
)在C:\Users\usertest\Desktop
上创建一个test.txt
文件并将其复制/粘贴到C:\folder
执行TestProgram.exe
创建的文件夹中,则操作成功。 如何编辑 C# 程序以避免复制/粘贴到folder
中?
在您问之前,我已经在 StackOverflow 中进行了搜索,但似乎没有什么适合我的上下文。
谢谢
编辑:在C:
文件夹中, Users
组( usertest
是其中的成员)具有:
权利。 那么,如何抑制 inheritance 从C:
到folder
?
要在 Windows 11 中停止 inheritance:
Windows 资源管理器 -> 右键单击文件夹 -> Select 菜单选项名为“属性” -> 切换到名为“安全”的选项卡 -> 单击名为“高级设置”的按钮 -> 点击底部名为“禁用”的按钮遗产”。
高级设置选项有一个非常有用的选项卡,名为“有效访问”,您可以在其中查看用户或组对 object 的实际操作。
如果您想使用 c# 执行此操作,您可以调用DirectorySecurity.SetAccessRuleProtection()并将bool preserveInheritance
设置为 false。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.