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