6236 Programmering I Agenda/Recursion
From Teknologisk videncenter
Følgende program kan anvendes til at liste alle filer i et bestemt directory
class Program
{
static void ListFiles(string dir)
{
//Opret et array til filnavnene
String[] files;
//Spørg hvilke filer der er i directoriet
files = System.IO.Directory.GetFiles(dir);
//Udskriv alle filerne
foreach (string file in files)
{
System.Console.WriteLine(file);
}
}
static void Main(string[] args)
{
//Kald metoden
ListFiles("C:\\");
System.Console.ReadKey();
}
}
Ved at ændre i metoden ListFiles kan vi få den til også at liste subdirectories, men rekursivt bliver det når vi lader metoden ListFiles kalde sig selv for hvert subdir.
static void ListFiles(string dir)
{
//Opret et array til filnavnene
String[] files;
//Spørg hvilke filer der er i directoriet
files = System.IO.Directory.GetFiles(dir);
//Udskriv alle filerne
foreach (string file in files)
{
System.Console.WriteLine(file);
}
//Lav et array til directory names
String[] subdirs;
subdirs = System.IO.Directory.GetDirectories(dir);
//Loop gennem alle directories
foreach (string subdir in subdirs)
{
//Metoden kalder sig selv med det nye sub
ListFiles(subdir);
}
}