using System; using System.IO; using System.Text; namespace PlayListCheck { class Program { static void Main(string[] args) { if (args.Length != 1) { Console.Write( "Usage: PlayListCheck directory" + Environment.NewLine + " PlayListCheck file.m3u" + Environment.NewLine + Environment.NewLine + "If a directory is specified, all .m3u files in that directory will be checked."+ Environment.NewLine ); Environment.Exit(1); } FileInfo[] playListFiles = null; if (Directory.Exists(args[0])) playListFiles = new DirectoryInfo(args[0]).GetFiles("*.m3u"); else if (File.Exists(args[0])) playListFiles = new FileInfo[] {new FileInfo(args[0])}; else { Console.Error.WriteLine("'{0}' is not a valid directory or play list file.", args[0]); Environment.Exit(-1); } foreach (FileInfo playListFile in playListFiles) { Console.WriteLine(playListFile.Name); using (StreamReader sr = new StreamReader(playListFile.FullName, Encoding.Default)) { string line; while ((line = sr.ReadLine()) != null) { if (!line.StartsWith("#EXT", StringComparison.InvariantCultureIgnoreCase)) { string filename = Path.Combine(playListFile.DirectoryName, line); if (!File.Exists(filename)) Console.WriteLine(" Missing: {0}", filename); } } } } } } }