Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using iTunesLib;
- using System.Xml;
- using System.Xml.Linq;
- using System.IO;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text.RegularExpressions;
- using TagLib;
- using ITLRU;
- namespace BackupLib
- {
- class Program
- {
- static void Main(string[] args)
- {
- // iTunes classes
- iTunesAppClass itunes = new iTunesAppClass();
- IITLibraryPlaylist mainLibrary = itunes.LibraryPlaylist;
- IITTrackCollection ittracks = mainLibrary.Tracks;
- List<string> files = new List<string>();
- List<string> musicfiles = new List<string>();
- List<string> badfiles = new List<string>();
- itunes.Pause();
- string[] extensions = { "*.mp3", "*.mp4", "*.m4a", "*.m4v", "*.m4p", "*.m4b", "*.flac"};
- string filepath = "G:\\iTunes Media";
- foreach (string extension in extensions)
- {
- files.AddRange(Directory.GetFiles(filepath, extension, SearchOption.AllDirectories));
- }
- foreach (string file in files)
- {
- try {string taglibfile = TagLib.File.Create(file).Tag.Title; musicfiles.Add(file); Console.WriteLine(taglibfile); }
- catch {badfiles.Add(file); }
- }
- Regex r = new Regex(@"(?<=\<\w+)[#\{\}\(\)\&](?=\>)|(?<=\</\w+)[#\{\}\(\)\&](?=\>)");
- XDocument baddoc = new XDocument
- (new XElement("Corrupt",
- badfiles.Select(badfile =>
- new XElement("File", badfile))));
- baddoc.Save("D:\\badfiles.xml");
- XDocument doc = new XDocument
- (
- new XElement("Songs",
- musicfiles.Select(musicfile=> (TagLib.File.Create(musicfile).Tag.Title);
- new XElement("Song",
- (new XElement("Title", (XmlConvert.EncodeName(TagLib.File.Create(musicfile).Tag.Title)))),
- (new XElement("Path", (XmlConvert.EncodeName(musicfile)))),
- (new XElement("Artist",(TagLib.File.Create(musicfile).Tag.Performers))))
- )));
- doc.Save("D:\\files.xml");
- itunes.Play();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment