private static StartMenuItem ToStartMenu(Dir dir)
        {
            var result = new StartMenuFolder(TrueName(dir.FilePath), dir.FilePath, AppType.None);

            GetAllFiles(dir)
            .Where(o => o.Name != "Desktop.ini")
            .Where(o => o.Name != "desktop.ini")
            .Select(file => new StartMenuItem(TrueName(file.FilePath), file.FilePath, AppType.Exe))
            .ToList()
            .ForEach(result.AddChild);

            return(result);
        }
        private static StartMenuFolder ToStartMenu(List <Dir> dirs)
        {
            var result = new StartMenuFolder(null, null, AppType.None);

            foreach (var dir in dirs)
            {
                dir.ChildDirs
                .Select(ToStartMenu)
                .ToList()
                .ForEach(result.AddChild);

                dir.ChildFiles
                .Select(file => new StartMenuItem(TrueName(file.FilePath), file.FilePath, AppType.Exe))
                .Where(item => item.Name != "desktop.ini")
                .ToList()
                .ForEach(result.AddChild);
            }

            return(result);
        }