There have been a number of times when I’ve wanted to know what exactly is in my system’s DNS cache (creating new subdomains, messing with hosts file, etc.). Here’s the trick in Windows to seeing it. Read the rest of this entry »
There have been a number of times when I’ve wanted to know what exactly is in my system’s DNS cache (creating new subdomains, messing with hosts file, etc.). Here’s the trick in Windows to seeing it. Read the rest of this entry »
I lost a hard drive a few weeks ago, and with it my up-to-date MP3 collection.
Luckily I had a backup of most of the MP3′s, but I wanted to find out exactly which MP3′s I had recovered and which ones I was missing. I knew the iTunes library is stored in an XML formatted file, but I would need to write something to read it and extract out the filenames of the individual MP3 files and then verify if they existed.
I have been using LINQ quite a bit lately on various projects, but only LINQ to SQL. I knew of LINQ to XML, but now I had a real reason to learn it.
First I looked at the iTunes library format. Here’s a snippet of the beginning of my file:
< ?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Major Version</key><integer>1</integer>
<key>Minor Version</key><integer>1</integer>
<key>Application Version</key><string>7.6.2</string>
<key>Features</key><integer>5</integer>
<key>Show Content Ratings</key>
<true />
<key>Music Folder</key><string>file://localhost/C:/Documents%20and%20Settings/chujanen/My%20Documents/My%20Music/iTunes/iTunes%20Music/</string>
<key>Library Persistent ID</key><string>54F22391EB807F23</string>
<key>Tracks</key>
</dict><dict>
<key>1666</key>
</dict><dict>
<key>Track ID</key><integer>1666</integer>
<key>Name</key><string>What's the Matter Here?</string>
<key>Artist</key><string>10,000 Maniacs</string>
<key>Album Artist</key><string>10,000 Maniacs</string>
<key>Composer</key><string>Natalie Merchant/Robert Buck</string>
<key>Album</key><string>In My Tribe</string>
<key>Genre</key><string>Rock</string>
<key>Kind</key><string>MPEG audio file</string>
<key>Size</key><integer>9318485</integer>
<key>Total Time</key><integer>291134</integer>
<key>Track Number</key><integer>1</integer>
<key>Year</key><integer>1987</integer>
<key>Date Modified</key><date>2005-03-09T07:31:09Z</date>
<key>Date Added</key><date>2007-07-20T17:21:36Z</date>
<key>Bit Rate</key><integer>256</integer>
<key>Sample Rate</key><integer>44100</integer>
<key>Comments</key><string></string>
<key>Persistent ID</key><string>54F22391EB807F38</string>
<key>Track Type</key><string>File</string>
key>Location<string>file://localhost/S:/mp3/10,000%20Maniacs/In%20My%20Tribe/01%20-%20What's%20the%20Matter%20Here%20.mp3</string>
<key>File Folder Count</key><integer>-1</integer>
<key>Library Folder Count</key><integer>-1</integer>
</dict>
<key>1667</key>
<dict>
<key>Track ID</key><integer>1667</integer>
<key>Name</key><string>Hey Jack Kerouac</string>
<key>Artist</key><string>10,000 Maniacs</string>