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

/**//*
Inthisexample,wearegettingallfolders,subfolders,andfolderswithin
subfolders.Thenwecanloadthemintoanycontrol.
*/


usingSystem;
usingSystem.Collections.Generic;
usingSystem.IO;
usingSystem.Web.UI;


namespaceStrongTypes

...{
publicclassFolderExample

...{
privateList<string>ListFolders=newList<string>();


publicvoidPopulateFolders(stringstrFolderLocation,Controlctrl)

...{
LoadFolders(strFolderLocation);


foreach(stringstrinListFolders)

...{
//AddcodeheretoaddfoldersandsubfolderstoControl
}
}


privatevoidLoadFolders(stringstrFolderLocation)

...{
DirectoryInfodir=null;


try

...{
dir=newDirectoryInfo(strFolderLocation);


FileSystemInfo[]info=dir.GetFileSystemInfos();


foreach(FileSystemInfofsiininfo)

...{
if(fsiisDirectoryInfo)

...{
ListFolders.Add(fsi.FullName);
}


AddDirectoriesToList(info);
}
}
catch

...{
if(strFolderLocation==null)

...{
thrownewNullReferenceException("ThepropertyFileLocationcannotbenull");
}


if(!(dir.Exists))

...{
thrownewDirectoryNotFoundException("Thedirectoryyouaretryingtosearchdoesnotexist.");
}
}
}


privatevoidAddDirectoriesToList(FileSystemInfo[]info)

...{
foreach(FileSystemInfofsiininfo)

...{
if(fsiisDirectoryInfo)

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

...{
ListFolders.Add(fsi.FullName);
}


DirectoryInfodir=(DirectoryInfo)fsi;
AddDirectoriesToList(dir.GetFileSystemInfos());
}
}
}
}
}
440

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



