示例#1
0
            private IEnumerable <string> GetRelativeFilePaths(DirectoryInfo dir)
            {
                foreach (var file in dir.EnumerateFiles())
                {
                    if ((file.Attributes & FileAttributes.Hidden) != 0 || file.Name[0] == '.')
                    {
                        continue;
                    }

                    var filePath = file.FullName;
                    var relPath  = filePath.Substring(_directory.FullName.Length);
                    yield return(ResourcePath.FromRelativeSystemPath(relPath).ToRootedPath().ToString());
                }

                foreach (var subDir in dir.EnumerateDirectories())
                {
                    if (((subDir.Attributes & FileAttributes.Hidden) != 0) || subDir.Name[0] == '.')
                    {
                        continue;
                    }

                    foreach (var relPath in GetRelativeFilePaths(subDir))
                    {
                        yield return(relPath);
                    }
                }
            }
示例#2
0
            /// <inheritdoc />
            public IEnumerable <ResourcePath> FindFiles(ResourcePath path)
            {
                var fullPath = GetPath(path);

                if (!Directory.Exists(fullPath))
                {
                    yield break;
                }
                var paths = PathHelpers.GetFiles(fullPath);

                // GetFiles returns full paths, we want them relative to root
                foreach (var filePath in paths)
                {
                    var relpath = filePath.Substring(_directory.FullName.Length);
                    yield return(ResourcePath.FromRelativeSystemPath(relpath));
                }
            }