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());

                }


            }


        }


    }


}

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值