6236 Programmering I Agenda/Recursion

From Teknologisk videncenter
< 6236 Programmering I Agenda
Revision as of 10:27, 27 November 2015 by Orso (talk | contribs) (Created page with "Følgende program kan anvendes til at liste alle filer i et bestemt directory <source lang=csharp> class Program { static void ListFiles(string dir) { //Opret ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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

}