2013-04-12 112 views
0

如何獲得其與「所有人」 privilage 在當前系統中創建獲取其爲「所有人」共享該文件夾的名稱

+0

看看[這個問題]的答案(http://stackoverflow.com/questions/1410127/c-sharp-test-if-user-has-write-access-to-a-folder)。您應該可以根據自己的需要來實現它。 –

+0

'icacls c:\/foundid everyone/T'然後捕獲輸出 – Steve

回答

0

您可以使用文件夾的名稱和位置DirectoryInfo.GetAccessControl得到

獲取一個封裝了訪問控制 列表(ACL)條目當前 DirectoryInfo對象描述的目錄DirectorySecurity對象。

對於系統中的單個目錄。剩下的就是實現對系統中所有存儲器迭代並調用它的問題。

例子:

string[] drives = System.Environment.GetLogicalDrives(); 
    foreach (string dr in drives) 
    { 
     System.IO.DriveInfo di = new System.IO.DriveInfo(dr); 


     if (!di.IsReady) 
     {    
      continue; 
     } 
     System.IO.DirectoryInfo root = di.RootDirectory; 
     var directories = root.GetDirectories("*.*", System.IO.SearchOption.AllDirectories); 
     foreach(var dirInfo in directories) { 
      var diAccess = dirInfo.GetAccessControl(..) ; 
     } 

    } 

完整的示例和解釋可以發現:How to: Iterate Through a Directory Tree

這只是一個草圖,將其更改爲滿足您的需求。

相關問題