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

被折叠的 条评论
为什么被折叠?



