簡體   English   中英

在C#中設置目錄和子容器的所有者

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM