예제 #1
0
        private static List<string> GetCheckedFilesBreathFirst(FileTreeViewModel obj)
        {
            var selectedItemList = new List<string>();
            var rootQueue = new Queue<FileTreeViewModel>();
            rootQueue.Enqueue(obj);
            while (rootQueue.Count > 0)
            {
                var next = rootQueue.Dequeue();
                if (next.IsChecked == null)
                {
                    foreach (FileTreeViewModel child in next.Children)
                    {
                        rootQueue.Enqueue(child);
                    }
                }
                else if (next.IsChecked.Value)
                {
                    selectedItemList.Add(next.FileSystemItem.FullName);

                    foreach (FileTreeViewModel child in next.Children)
                    {
                        selectedItemList.Add(child.FileSystemItem.FullName);
                    }
                }
            }
            return selectedItemList;
        }
예제 #2
0
 private void LoadData(string path)
 {
     if (!Directory.Exists(path)) return; //ignore
     var rootCollection = new ObservableCollection<FileTreeViewModel>();
     var dir = new DirectoryInfo(path);
     var root = new FileTreeViewModel(dir.Name, true, null, dir, this);
     rootCollection.Add(root);
     FileTreeView.DataContext = rootCollection;
     root.IsExpanded = true;
 }
예제 #3
0
        public override void LoadChildren()
        {
            try
            {
                if (_fileSystemItem is DirectoryInfo)
                {
                    var item = _fileSystemItem as DirectoryInfo;
                    Children.Remove(DummyChild);

                    foreach (var folder in item.GetDirectories())
                    {
                        var f = new FileTreeViewModel(folder.Name, true, this, folder, _fileTreeViewEvent);
                        Children.Add(f);
                    }

                    foreach (var file in item.GetFiles())
                    {
                        var f = new FileTreeViewModel(file.Name, false, this, file, _fileTreeViewEvent);
                        Children.Add(f);
                    }
                }
            }
            catch (UnauthorizedAccessException) { }
            catch (SecurityException) {  }
        }