2013-04-12 50 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

这只是一个草图,将其更改为满足您的需求。

相关问题