Ejemplo n.º 1
0
        private List <T> SearchPictures <T>(string strDir, bool recursive, CreatePicture <T> creator)
        {
            try
            {
                List <T> output = new List <T>();
                foreach (string strFile in Directory.GetFiles(strDir))
                {
                    var file = new FileInfo(PathUtil.StripFileProtocolPrefix(strFile));
                    if (Extensions.Contains(file.Extension.ToLowerInvariant()))
                    {
                        output.Add(creator.Invoke(file.FullName));
                    }
                }

                if (recursive)
                {
                    foreach (string strDirectory in Directory.GetDirectories(strDir))
                    {
                        output.AddRange(SearchPictures(strDirectory, true, creator));
                    }
                }

                return(output);
            }
            catch (Exception ex)
            {
                Log.Warn("Failed in recursive picture search", ex);
                return(new List <T>());
            }
        }