static HashSet <string> GetSelectionsBySamples(List <PathPattern> fileSamples, List <PathPattern> dirSamples) { List <PathPattern> samples = new List <PathPattern>(); samples.AddRange(fileSamples); samples.AddRange(dirSamples); HashSet <string> hash = new HashSet <string>(); for (int i = 0; i < samples.Count; i++) { PathPattern sample = samples[i]; if (!Directory.Exists(sample.dir)) { DebugUtil.LogWarning("The directory isn't exist : " + sample.dir); continue; } string[] entries; if (i < fileSamples.Count) { entries = FilePathTools.SelectEntries(FilePathTools.GetFiles(sample.dir, sample.regex, sample.searchOption), FILTER_META_REGEX); } else { entries = FilePathTools.GetDirectories(sample.dir, sample.regex, sample.searchOption); } hash.UnionWith(entries); DebugUtil.Log("\"" + EditorCommonUtils.NormalizeDirectory(sample.dir) + sample.regex + "\" match " + (i < fileSamples.Count ? "files" : "directories") + " : " + entries.Length); } return(hash); }
public static HashSet <string> GetDependencies(string[] pathNames, string regex) { string[] dependencies = AssetDatabase.GetDependencies(pathNames); dependencies = FilePathTools.SelectEntries(dependencies, regex); return(new HashSet <string>(dependencies)); }