如何从DirectorySecurity在TreeView中显示用户权限

时间:2019-05-27 12:16:18

标签: c#

我需要显示每个用户对服务器上共享文件夹中所有文件夹的权限

我尝试了各种解决方案,但是没有一个显示每个文件夹和子文件夹的用户权限

这是我当前正在使用的代码

public bool CheckFolderPermissions(string folderPath, TreeNode td)
    {
        {
            DirectoryInfo dirInfo = new DirectoryInfo(folderPath);
            try
            {
                DirectorySecurity dirAC = 
dirInfo.GetAccessControl(AccessControlSections.All);
                ad_treeView_trv.Nodes.Add(dirInfo.Name);
                return true;
            }
            catch (PrivilegeNotHeldException)
            {
                return false;
            }
        }

应该显示文件夹目录(确实如此),但还需要显示每个文件夹的用户权限。

public void LoadDirectory(string Dir)
    {
        DirectoryInfo di = new DirectoryInfo(Dir);
        //Setting ProgressBar Maximum Value  
        ad_progressBar_prg.Maximum = Directory.GetFiles(Dir, "*.*", SearchOption.AllDirectories).Length + Directory.GetDirectories(Dir, "**", SearchOption.AllDirectories).Length;
        TreeNode tds = ad_treeView_trv.Nodes.Add(di.Name);
        tds.Tag = di.FullName;
        tds.StateImageIndex = 0;
        LoadFiles(Dir, tds);
        LoadSubDirectories(Dir, tds);
        CheckFolderPermissions(Dir, tds);
    }

 public bool CheckFolderPermissions(string folderPath, TreeNode td)
    {
        {
            DirectoryInfo dirInfo = new DirectoryInfo(folderPath);
            try
            {
                DirectorySecurity dirAC = dirInfo.GetAccessControl(AccessControlSections.All);
                ad_treeView_trv.Nodes.Add(dirInfo.Name);
                return true;
            }
            catch (PrivilegeNotHeldException)
            {
                return false;
            }
        }

    }

使用上述代码没有收到任何错误消息,但是与没有以上代码的情况相比,加载目录的时间似乎更长。

谢谢

0 个答案:

没有答案