예제 #1
0
 internal bool ExcludeFile(FileInfo file)
 {
     if (ContainsSearchForFiles)
     {
         return(ExcludeFiles.Any(f => file.Name.Contains(f)));
     }
     else
     {
         return(ExcludeFiles.Contains(file.Name));
     }
 }
예제 #2
0
        public IEnumerable <SlimFileInfo> EnumerateFiles(string filePath, string pattern = "*", SearchOption option = SearchOption.AllDirectories)
        {
            Files = Directory.EnumerateFiles(filePath, pattern, option)
                    .Select(x => new SlimFileInfo(x, filePath));

            // Exclude files under specified directories (respect directory structure)
            if (ExcludeDirectories != null && ExcludeDirectories.Any())
            {
                Files = Files.Where(x => !ExcludeDirectories.Any(y => x.MultiplatformRelativeDirectory.StartsWith(y)));
            }

            // Exclude specified name files (Just matching filename, ignore directory structure.)
            if (ExcludeFiles != null && ExcludeFiles.Any())
            {
                Files = Files.Where(x => !ExcludeFiles.Contains(x.FileName));
            }
            return(Files);
        }