Example #1
0
        public AppInfoCollection FindApps(
            IEnumerable <string> pathList,
            IEnumerable <string> extList,
            bool onlyPrograms)
        {
            var result = new AppInfoCollection();

            if (extList == null)
            {
                return(result);
            }

            if (pathList == null)
            {
                return(result);
            }

            var allFiles = new List <string>();

            foreach (var path in pathList)
            {
                if (!Directory.Exists(path))
                {
                    continue;
                }

                foreach (var ext in extList)
                {
                    string extension = ext;

                    if (String.IsNullOrEmpty(extension))
                    {
                        continue;
                    }

                    if (extension.StartsWith(".") && extension.Length > 1)
                    {
                        extension = extension.Substring(1, ext.Length - 1);
                    }

                    string[] files = Directory.GetFiles(path, "*." + extension, SearchOption.AllDirectories);
                    allFiles.AddRange(files);
                }
            }

            return(FindApps(allFiles, onlyPrograms));
        }
Example #2
0
        protected AppInfoCollection FindApps(IEnumerable <string> files, bool onlyPrograms)
        {
            var result = new AppInfoCollection();

            if (files == null)
            {
                return(result);
            }

            var uniq = new Dictionary <string, object>(100);

            foreach (var path in files)
            {
                var ai = GetAppInfo(path, onlyPrograms, uniq);
                if (ai != null)
                {
                    result.Add(ai);
                }
            }

            return(result);
        }
Example #3
0
 public void AddToBin(DeletedAppCollection recycleBin, IEnumerable <AppInfo> apps, AppInfoCollection allApps)
 {
     foreach (var app in apps)
     {
         recycleBin.AddApp(null, app, false);
         if (allApps != null)
         {
             allApps.Remove(app);
         }
     }
 }