Strong Coders Community

Where the extreme coders hang out.
Welcome to Strong Coders Community Sign in | Join | Help Messenger

ASP.NET 2.0 C# Generics List Collection Folder Control

This page demonstrates using a Generics List Collection in C# how to retrieve all folders, subfolder, and folders within subfolders.

/*

In this example, we are getting all folders, subfolders, and folders within

subfolders. Then we can load them into any control.

*/

 

using System;

using System.Collections.Generic;

using System.IO;

using System.Web.UI;

 

namespace StrongTypes

{

    public class FolderExample

    {

        private List < string > ListFolders = new List < string >();

 

        public void PopulateFolders( string strFolderLocation, Control ctrl)

        {

            LoadFolders(strFolderLocation);

 

            foreach ( string str in ListFolders)

            {

                //Add code here to add folders and subfolders to Control

            }

        }

 

        private void LoadFolders( string strFolderLocation)

        {

            DirectoryInfo dir = null ;

 

            try

            {

                dir = new DirectoryInfo (strFolderLocation);

 

                FileSystemInfo [] info = dir.GetFileSystemInfos();

 

                foreach ( FileSystemInfo fsi in info)

                {

                    if (fsi is DirectoryInfo )

                    {

                        ListFolders.Add(fsi.FullName);

                    }

 

                    AddDirectoriesToList(info);

                }

            }

            catch

            {

                if (strFolderLocation == null )

                {

                    throw new NullReferenceException ( "The property FileLocation cannot be null" );

                }

 

                if (!(dir.Exists))

                {

                    throw new DirectoryNotFoundException ( "The directory you are trying to search does not exist." );

                }

            }

        }

 

        private void AddDirectoriesToList( FileSystemInfo [] info)

        {

            foreach ( FileSystemInfo fsi in info)

            {

                if (fsi is DirectoryInfo )

                {

                    if (!(ListFolders.Contains(fsi.FullName)))

                    {

                        ListFolders.Add(fsi.FullName);

                    }

 

                    DirectoryInfo dir = ( DirectoryInfo )fsi;

                    AddDirectoriesToList(dir.GetFileSystemInfos());

                }

            }

        }

    }

}

Powered by Community Server (Commercial Edition), by Telligent Systems