ASP.NET 2.0 C# Generics List Collection Folder Control

本文介绍了一个使用C#编写的示例程序,该程序可以递归地获取指定目录下所有子文件夹及其路径,并将这些路径加载到一个泛型列表中。通过这个例子,读者可以了解到如何在C#中操作文件系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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

                }


            }


        }


    }


}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值