Exemplo n.º 1
0
        public Directory GetDirectory(Path directoryPath)
        {
            var resolvedDirectoryPath = CurrentDirectory.Combine(directoryPath);
            var segments = resolvedDirectoryPath.Segments;
            var baseCase = GetFirstSegmentAsRootIfRooted(resolvedDirectoryPath, segments);

            return(segments.Skip(1).Aggregate(baseCase, (current, segment) => current.GetDirectory(segment)));
        }
Exemplo n.º 2
0
        public File GetFile(Path filePath)
        {
            var resolvedFilePath = CurrentDirectory.Combine(filePath);
            var pathSegments     = resolvedFilePath.Segments;
            var baseCase         = GetFirstSegmentAsRootIfRooted(filePath, pathSegments);
            var ownerFolder      = pathSegments
                                   .Skip(1).Take(pathSegments.Count() - 2)
                                   .Aggregate(baseCase, (current, segment) => current.GetDirectory(segment));

            return(ownerFolder.GetFile(pathSegments.Last()));
        }
        public IFile GetFile(string filePath)
        {
            var resolvedFilePath = CurrentDirectory.Combine(filePath);
            var pathSegments     = resolvedFilePath.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(Path directoryPath)
        {
            directoryPath = EnsureTerminatedByDirectorySeparator(directoryPath);

            var resolvedDirectoryPath = CurrentDirectory.Combine(directoryPath);

            var segments = resolvedDirectoryPath.Segments;

            return(segments
                   .Skip(1)
                   .Aggregate((IDirectory)GetRoot(segments.First()),
                              (current, segment) => current.GetDirectory(segment)));
        }