Get files recursively as relative paths
Building on Henrick's answer, using Ling to return the IEnumerable:

return Directory.GetFiles(root, "*", SearchOption.AllDirectories)
              .Select(p =&gt; p.Remove(0, rootLength));