[英]Set Owner of Directory and Sub Containers in C#
在Server 2008 R2中設置一個預先存在的文件夾的所有者時,是否有辦法使它傳播到對象下的所有子容器? 您可以在“屬性”診斷中執行此操作,但看不到對此的切換。
我正在尋找一種避免在子容器中重復操作的方法。
此代碼將僅切換頂級目錄的所有者。
DirectoryInfo myDirectoryInfo = new DirectoryInfo("PATH HERE");
DirectorySecurity myDirectorySecurity = myDirectoryInfo.GetAccessControl();
System.Security.Principal.IdentityReference myOwner =
new System.Security.Principal.NTAccount("TARGET OWNER ACCOUNT");
myDirectorySecurity.SetOwner(myOwner);
myDirectoryInfo.SetAccessControl(myDirectorySecurity);
沒有過載可以為您提供此功能。
但是下面的代碼可以做到這一點:
DirectoryInfo directoryInfo = new DirectoryInfo(path);
var directories = directoryInfo.EnumerateDirectories("*.*", SearchOption.AllDirectories);
foreach (var directory in directories)
{
// set owner
}
請注意,我使用EnumerateDirectories
代替Directory.GetDirectories
,即使有1000個Directory.GetDirectories
,它也會立即返回。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.