public IFile GetFile(string filePath)
 {
     var resolviedFilePath = Path.GetFullPath(Path.Combine(CurrentDirectory, filePath));
     var pathSegments = new LocalPath(resolviedFilePath).Segments;
     var ownerFolder = pathSegments
         .Skip(1).Take(pathSegments.Count()-2)
         .Aggregate((IDirectory)GetRoot(pathSegments.First()),
             (current, segment) => current.GetDirectory(segment));
     return ownerFolder.GetFile(pathSegments.Last());
 }
 public IDirectory GetDirectory(string directoryPath)
 {
     var resolvedDirectoryPath = Path.GetFullPath(Path.Combine(CurrentDirectory,directoryPath));
     var pathSegments = new LocalPath(resolvedDirectoryPath).Segments;
     return pathSegments
         .Skip(1)
         .Aggregate((IDirectory)GetRoot(pathSegments.First()),
             (current, segment) => current.GetDirectory(segment));
 }