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)); }