Similar to System.IO.Abstractions, but with .NET 4.5 methods and slightly different API