Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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();
                }));
            }
        }
Ejemplo n.º 3
0
 static private void RemoveNode(List <FilesTreeNode> tree, FilesTreeNode node)
 {
     foreach (var cn in node.Children)
     {
         RemoveNode(tree, cn);
     }
     tree.Remove(node);
 }
Ejemplo n.º 4
0
        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;
            }
        }
Ejemplo n.º 5
0
 public FilesTreeNode(string fullName, FilesTreeNode parent)
 {
     this.FullName = fullName;
     this.Parent   = parent;
     Children      = new List <FilesTreeNode>();
 }