public TempFolder(FileSystem fileSystem, string path = null)
 {
   this.fileSystem = fileSystem;
   if (path != null)
   {
     this.Path = fileSystem.Directory.Ensure(System.IO.Path.Combine(System.IO.Path.GetPathRoot(path), Guid.NewGuid().ToString()));
   }
   else
   {
     this.Path = fileSystem.Directory.Ensure(System.IO.Path.Combine(System.IO.Path.GetTempPath(), System.IO.Path.GetRandomFileName()));
   }
 }
 public PathProvider(FileSystem fileSystem)
 {
     this.fileSystem = fileSystem;
 }
 public FileProvider(FileSystem fileSystem)
 {
     this.fileSystem = fileSystem;
 }