You have missed a backslash in your path. I would strongly suggest using Path.Combine
for this type of thing too. It makes it far more readable and is a cleaner way than pure string concatenation. Also Path.GetFileName()
is super useful... know it / love it ;)
File.Move(songs[i], Path.Combine(@"C:\Musik", Path.Combine(artist[i], Path.GetFileName(songs[i]));
UPDATE
If you are targeting .Net 4.0 or higher you can use the 4 string override to make this cleaner (as is pointed out in the suggestions). If you are targeting 3.5 or lower, use the top solution.
File.Move(songs[i], Path.Combine(@"C:", "Musik", artist[i], Path.GetFileName(songs[i]));