private void LookThroughStick() { foreach (DirectoryInfo dir in GetMovieFolders()) { foreach (DirectoryInfo film in dir.GetDirectories()) { if (film.GetDirectories().Length == 0) //Heeft geen sequels --> is gewoon de film { string naam = Toolbox.GetTitel(film.Name); int jaar = Toolbox.GetJaartal(film.Name); FileInfo[] info = film.GetFiles(); if (info[0].Length > 2000000000) { decimal lengte = Math.Round(Decimal.Parse(info[0].Length.ToString()) / 1000000000, 2); Errors.Add(film.ToString() + ": Bestand is groter dan 2GB\t(" + lengte + " Gb)"); } if (info.Length != 2) { if (info.Length > 2) { Errors.Add(film.ToString() + ": Meer dan 2 bestanden in map."); } else { if (info.Length == 0) { Errors.Add(film.ToString() + ": Geen bestanden in map."); } else { if (info[0].Extension.ToLower().ToLower() == ".srt") { Errors.Add(film.ToString() + ": Geen video bestand in map."); } else { Errors.Add(film.ToString() + ": Geen ondertiteling in map."); } } } } else { var movieFile = info.FirstOrDefault(f => f.Extension.ToLower() != ".srt"); if (movieFile != null) { if (movieFile.Extension.ToLower() != ".mkv") { Errors.Add(film.ToString() + ": Videobestand is niet van formaat .mkv"); } } } Films.Add(new Film(naam, jaar, film.FullName, info[0].Length)); } else { Film mov = new Film(Toolbox.GetTitel(film.Name), 0, film.FullName); mov.HeeftSequel = true; foreach (DirectoryInfo sequel in film.GetDirectories()) { FileInfo[] info = sequel.GetFiles(); if (info[0].Length > 2000000000) { decimal lengte = Math.Round(Decimal.Parse(info[0].Length.ToString()) / 1000000000, 2); Errors.Add(sequel.ToString() + ": Bestand is groter dan 2GB\t(" + lengte + " Gb)"); } if (info.Length != 2) { if (info.Length > 2) { Errors.Add(mov.Titel + " - " + sequel.ToString() + ": Meer dan 2 bestanden in map."); } else { if (info.Length == 0) { Errors.Add(mov.Titel + " - " + sequel.ToString() + ": Geen bestanden in map."); } else { if (info[0].Extension.ToLower() == ".srt") { Errors.Add(mov.Titel + " - " + sequel.ToString() + ": Geen video bestand in map."); } else { Errors.Add(mov.Titel + " - " + sequel.ToString() + ": Geen ondertiteling in map."); } } } } else { var movieFile = info.FirstOrDefault(f => f.Extension.ToLower() != ".srt"); if (movieFile != null) { if (movieFile.Extension.ToLower() != ".mkv") { Errors.Add(mov.Titel + " - " + sequel.ToString() + ": Videobestand is niet van formaat .mkv"); } } } Film seq = new Film(Toolbox.GetTitel(film.Name) + " - " + Toolbox.GetTitel(sequel.Name), Toolbox.GetJaartal(sequel.Name), sequel.FullName, info[0].Length); mov.VoegSequelToe(seq); } mov.Jaar = mov.Sequels.ElementAt(0).Jaar; mov.size = mov.Sequels.Sum(m => m.size); Sequels.Add(mov); Films.Add(mov); } } } }
static void Main() { Console.BufferHeight = Int16.MaxValue - 1; Console.WriteLine("Selecteer de map die de films bevat:"); FolderBrowserDialog fbd = new FolderBrowserDialog(); if (fbd.ShowDialog() != DialogResult.OK) { Console.WriteLine("Geen map gekozen, programma wordt afgesloten."); Console.ReadKey(); return; } Console.Clear(); Stick stick = new Stick(fbd.SelectedPath); Console.WriteLine("In welke mappen zitten geen films?"); Toolbox.PrintList(stick.GetAllFolders(), '\t'); Console.Write("Mappen die beginnen met: "); stick.SetUitzondering(Console.ReadLine()); int code = -1; while (code != 0) { do { Console.Clear(); Console.WriteLine("Kies wat je wil doen:"); Console.WriteLine("1) Toon alle films"); Console.WriteLine("2) Toon alle film mappen"); Console.WriteLine("3) Toon films die ... in naam hebben"); Console.WriteLine("4) Toon een random film om te kijken"); Console.WriteLine("5) Toon resultaten"); Console.WriteLine("6) Schrijf resultaten naar bestand"); Console.WriteLine("7) Verander mappen die films bevatten"); Console.WriteLine("8) Export alle films naar XML"); Console.WriteLine("0) Afsluiten"); try { code = int.Parse(Console.ReadLine().ToString()); } catch { code = -1; } } while (code < 0 || code > 8); switch (code) { case 0: break; case 1: Toolbox.PrintList(stick.Films, charVoorString: '\t'); break; case 2: Toolbox.PrintList(stick.GetMovieFolders()); break; case 3: Console.WriteLine("Film moet ... bevatten:"); string par = Console.ReadLine(); Toolbox.PrintList(stick.Films, contains: par); break; case 4: Random rand = new Random(); int film = rand.Next(0, stick.Films.Count); Console.WriteLine("Gekozen film:"); Console.WriteLine("\t" + stick.Films[film].Titel + " - " + stick.Films[film].Jaar); break; case 5: Toolbox.PrintList(stick.Errors); break; case 6: stick.PrintFilmsToFile(); stick.PrintErrorsToFile(); break; case 7: stick = new Stick(fbd.SelectedPath); Console.WriteLine("In welke mappen zitten geen films?"); Toolbox.PrintList(stick.GetAllFolders(), '\t'); Console.Write("Mappen die beginnen met: "); stick.SetUitzondering(Console.ReadLine()); Console.Clear(); break; case 8: Toolbox.ExportMoviesToXML("films.xml", stick); break; } if (code != 0) { Console.WriteLine("Enter om door te gaan"); Console.Read(); } } }