示例#1
0
        private TVMlevel GetDirectoryNodes(string path, string parent)
        {
            var node = new TVMlevel
            {
                Name         = path.Split('\\').LastOrDefault(),
                CompletePath = path,
                Parent       = parent,
                Children     = new ObservableCollection <TVMlevel>(),
            };

            var subDirs = Directory.GetDirectories(path).Select(d => GetDirectoryNodes(d, string.Join("\\", d.Split('\\').Reverse().Skip(1).Reverse()))).ToArray();

            foreach (var d in subDirs)
            {
                node.Children.Add(d);
            }

            return(node);
        }
示例#2
0
        private void CreateTreeviewItems()
        {
            var tmpDirs = Directory.GetDirectories(MyImgDirectory.path, "*", SearchOption.AllDirectories).ToList();

            // para los directorios de un mismo nivel
            //Dictionary<int, List<string>> dirsLevel = new Dictionary<int, List<string>>();
            //var tmpLvls = tmpDirs.Select(d => d.Split('\\').Count()).OrderBy(o => o).ToList();

            //for (int i = 0; i < tmpDirs.Count(); i++)
            //{
            //    var currentLvl = tmpLvls[i];
            //    var dirsList = tmpDirs.Where(d => d.Split('\\').Count() == currentLvl).ToList();

            //    dirsLevel.Add(currentLvl, dirsList);

            //    // para saltarnos lo iguales le sumamos la cantidad de añadidos y le restamos uno para la próxima vuelta
            //    i += dirsList.Count - 1;
            //}

            TVMlevel tmpLvl = new TVMlevel();

            tmpLvl = GetDirectoryNodes(MyImgDirectory.path, "root");

            //int index = dirsLevel.First().Key;
            //for (int i = 0; i < dirsLevel.Count; i++)
            //{
            //    var lvl = dirsLevel.Where(x => x.Key == index + i).FirstOrDefault().Key;
            //    var dirs = dirsLevel.Where(x => x.Key == index + i).FirstOrDefault().Value;

            //    var predecessors = dirsLevel.Where(x => x.Key == index + i - 1).FirstOrDefault().Value;
            //}

            TreeViewModel tvm = new TreeViewModel
            {
                Children = new ObservableCollection <TVMlevel>()
                {
                    tmpLvl,
                }
            };

            TvContent = tvm;
        }