static private void Readfile(FilesTreeNode pNode, List <FilesTreeNode> tree) { DirectoryInfo dir = new DirectoryInfo(pNode.FullName); FileInfo[] files = { }; DirectoryInfo[] subDirs = { }; if (dir.Exists) { files = dir.GetFiles(); subDirs = dir.GetDirectories(); } foreach (var file in files) { FilesTreeNode node = new FilesTreeNode(file.FullName, pNode); pNode.Children.Add(node); tree.Add(node); } foreach (var subDir in subDirs) { FilesTreeNode node = new FilesTreeNode(subDir.FullName, pNode); pNode.Children.Add(node); tree.Add(node); Readfile(node, tree); } }
private void Watcher_Created(object sender, FileSystemEventArgs e) { lock (mutex) { FileTreeControl.Invoke(new Action(delegate() { string path = e.FullPath; string dir = Path.GetDirectoryName(path); var treeNode = FileTreeControl.FindNode((node) => { if (FileTree[node.Id].FullName == dir) { return(true); } else { return(false); } }); List <FilesTreeNode> tempTree = new List <FilesTreeNode>(); FilesTreeNode newNode = new FilesTreeNode(e.FullPath, FileTree[treeNode.Id]); FileTree[treeNode.Id].Children.Add(newNode); tempTree.Add(newNode); Readfile(newNode, tempTree); FileTree.AddRange(tempTree); FileTreeControl.RefreshDataSource(); })); } }
static private void RemoveNode(List <FilesTreeNode> tree, FilesTreeNode node) { foreach (var cn in node.Children) { RemoveNode(tree, cn); } tree.Remove(node); }
public void initTreelist2() { treeList2.OptionsBehavior.Editable = false; //不可编辑 treeList2.OptionsView.ShowIndicator = false; //不显示左边的一列 treeList2.OptionsView.ShowHorzLines = false; //不显示水平线 treeList2.OptionsView.ShowVertLines = false; //垂直线条是否显示 //聚焦的样式是否只适用于聚焦细胞或所有细胞除了聚焦对象,失去焦点后 treeList2.LookAndFeel.UseWindowsXPTheme = true; treeList2.OptionsSelection.InvertSelection = true; string root = Project.Instance.RootPath; if (!Fs.RootDirExists()) { } else { labelControl1.Visible = false; simpleButton1.Visible = false; FilesTreeNode rootNode = new FilesTreeNode(root, null); FileTree.Add(rootNode); Readfile(rootNode, FileTree); treeList2.DataSource = FileTree; this.fileSystemWatcher1.Path = root; this.fileSystemWatcher1.Created += Watcher_Created; this.fileSystemWatcher1.Deleted += Watcher_Deleted; this.fileSystemWatcher1.Renamed += Watcher_Renamed; this.fileSystemWatcher1.EnableRaisingEvents = true; this.fileSystemWatcher1.IncludeSubdirectories = true; //把非Name的列隐藏 if (treeList2.Columns.Count > 0) { for (int i = 0; i < treeList2.Columns.Count; i++) { if (treeList2.Columns[i].FieldName != "Name") { treeList2.Columns[i].Visible = false; } } } treeList2.ExpandToLevel(0); Autodesk.AutoCAD.ApplicationServices.Core.Application.DocumentManager.DocumentDestroyed += DocumentManager_DocumentDestroyed; } }
public FilesTreeNode(string fullName, FilesTreeNode parent) { this.FullName = fullName; this.Parent = parent; Children = new List <FilesTreeNode>(); }