none
請問該如何取得特定資料夾下的所有資料夾以及子資料夾 RRS feed

  • 問題

  • 請問各位前輩,我想要能夠將特定資料夾中的所有資料夾以及子資料夾全部列出來,應該如何做呢?我只做出列出一層資料夾,但是若含有多層就不知道該如何做了?

    string[] dirs = Directory.GetDirectories(textBox1.Text);
                foreach (string dir in dirs)
                {
                    DirectorySecurity ds = new DirectorySecurity(@textBox1.Text, AccessControlSections.Access);
                    AuthorizationRuleCollection arc = ds.GetAccessRules(true, true, typeof(NTAccount));
                    foreach (FileSystemAccessRule ar in arc)
                    {
                        string FolderPermissions = ar.IdentityReference + ": " + ar.AccessControlType + " " + ar.FileSystemRights;
                        listBox1.Items.Add(dir + ";" + FolderPermissions);
                    }
                }
    

    2011年12月21日 上午 03:33

解答

  • 2011年12月21日 上午 03:44
  • string[] dirs = Directory.GetDirectories(textBox1.Text);
    =>
    string[] dirs = Directory.GetDirectories(textBox1.Text, "*.*", SearchOption.AllDirectories );

     


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/
    2011年12月21日 上午 11:02
  • 您可以寫個遞迴程序:

    void DirSearch(string sDir)
    {
        try 
       {
           foreach (string d in Directory.GetDirectories(sDir))
          {
              DirectorySecurity ds = new DirectorySecurity(@textBox1.Text, AccessControlSections.Access);
              AuthorizationRuleCollection arc = ds.GetAccessRules(true, true, typeof(NTAccount));
              foreach (FileSystemAccessRule ar in arc)
              {
                  string FolderPermissions = ar.IdentityReference + ": " + ar.AccessControlType + " " + ar.FileSystemRights;
                  listBox1.Items.Add(dir + ";" + FolderPermissions);
              }
              DirSearch(d);
          }
       }
    }

    2011年12月21日 下午 01:51

所有回覆

  • 2011年12月21日 上午 03:44
  • string[] dirs = Directory.GetDirectories(textBox1.Text);
    =>
    string[] dirs = Directory.GetDirectories(textBox1.Text, "*.*", SearchOption.AllDirectories );

     


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/
    2011年12月21日 上午 11:02
  • 您可以寫個遞迴程序:

    void DirSearch(string sDir)
    {
        try 
       {
           foreach (string d in Directory.GetDirectories(sDir))
          {
              DirectorySecurity ds = new DirectorySecurity(@textBox1.Text, AccessControlSections.Access);
              AuthorizationRuleCollection arc = ds.GetAccessRules(true, true, typeof(NTAccount));
              foreach (FileSystemAccessRule ar in arc)
              {
                  string FolderPermissions = ar.IdentityReference + ": " + ar.AccessControlType + " " + ar.FileSystemRights;
                  listBox1.Items.Add(dir + ";" + FolderPermissions);
              }
              DirSearch(d);
          }
       }
    }

    2011年12月21日 下午 01:51