tankcr

Untitled

Apr 21st, 2014
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.27 KB | None | 0 0
  1. using System;
  2. using iTunesLib;
  3. using System.Xml;
  4. using System.Xml.Linq;
  5. using System.IO;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text.RegularExpressions;
  9. using TagLib;
  10. using ITLRU;
  11. namespace BackupLib
  12. {
  13.     class Program
  14.     {
  15.       static void Main(string[] args)
  16.         {
  17.             // iTunes classes
  18.             iTunesAppClass itunes = new iTunesAppClass();
  19.             IITLibraryPlaylist mainLibrary = itunes.LibraryPlaylist;
  20.             IITTrackCollection ittracks = mainLibrary.Tracks;          
  21.             List<string> files = new List<string>();
  22.             List<string> musicfiles = new List<string>();
  23.             List<string> badfiles = new List<string>();
  24.             itunes.Pause();
  25.           string[] extensions = { "*.mp3", "*.mp4", "*.m4a", "*.m4v", "*.m4p", "*.m4b", "*.flac"};
  26.             string filepath = "G:\\iTunes Media";
  27.             foreach (string extension in extensions)
  28.             {
  29.                 files.AddRange(Directory.GetFiles(filepath, extension, SearchOption.AllDirectories));
  30.             }
  31.  
  32.             foreach (string file in files)
  33.             {
  34.                 try {string taglibfile = TagLib.File.Create(file).Tag.Title; musicfiles.Add(file); Console.WriteLine(taglibfile); }
  35.                 catch {badfiles.Add(file); }
  36.             }
  37.  
  38.           Regex r = new Regex(@"(?<=\<\w+)[#\{\}\(\)\&](?=\>)|(?<=\</\w+)[#\{\}\(\)\&](?=\>)");
  39.           XDocument baddoc = new XDocument
  40.                 (new XElement("Corrupt",
  41.                     badfiles.Select(badfile =>
  42.                     new XElement("File", badfile))));
  43.                 baddoc.Save("D:\\badfiles.xml");
  44.  
  45.             XDocument doc = new XDocument
  46.                 (
  47.                 new XElement("Songs",
  48.                  musicfiles.Select(musicfile=> (TagLib.File.Create(musicfile).Tag.Title);
  49.                      new XElement("Song",
  50.                    (new XElement("Title", (XmlConvert.EncodeName(TagLib.File.Create(musicfile).Tag.Title)))),
  51.                    (new XElement("Path", (XmlConvert.EncodeName(musicfile)))),
  52.                    (new XElement("Artist",(TagLib.File.Create(musicfile).Tag.Performers))))
  53.                    )));
  54.                 doc.Save("D:\\files.xml");
  55.                 itunes.Play();
  56.         }
  57.     }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment