Difference between revisions of "6236 Programmering I Agenda/Recursion"

From Teknologisk videncenter
Jump to: navigation, search
(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 ...")
 
 
Line 57: Line 57:
 
}
 
}
 
</source>
 
</source>
 +
 +
==Opgave==
 +
Lav et program der kan finde en fil med et bestemt navn på din harddisk og udskrive filen.
 +
 +
Hvis du starter fra root vil du opleve problemer med rettigheder til nogle biblioteker, men det kan løses med try catch.

Latest revision as of 10:31, 27 November 2015

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

}

Opgave

Lav et program der kan finde en fil med et bestemt navn på din harddisk og udskrive filen.

Hvis du starter fra root vil du opleve problemer med rettigheder til nogle biblioteker, men det kan løses med try catch.