Esempio n. 1
0
            /// <summary>
            /// 在追加子节点时,对Tag进行更新
            /// </summary>
            /// <param name="file"></param>
            private void 更新信息(FileInfo file)
            {
                allFileInfos.Add(new KeyValuePair <FileInfo, TreeNode>(file, _node));
                FileType = FileType.文件;
                //只管父级
                string    exestr = Path.GetExtension(file.FullName).ToLower();
                myNodeTag parent = (_node.Parent ?? new TreeNode()
                {
                    Tag = null
                }).Tag as myNodeTag;

                while (parent != null)
                {
                    if (!parent.extCount.ContainsKey(exestr))
                    {
                        parent.extCount.Add(exestr, new List <FileInfo>());
                    }
                    parent.extCount[exestr].Add(file);
                    if (parent.MaxFile == null || parent.MaxFile.Length < file.Length)
                    {
                        parent.MaxFile = file;
                    }
                    if (parent.MinFile == null || parent.MinFile.Length > file.Length)
                    {
                        parent.MinFile = file;
                    }
                    if (parent.LastEditFile == null || parent.LastEditFile.LastWriteTime < file.LastWriteTime)
                    {
                        parent.LastEditFile = file;
                    }
                    if (parent.LastCreateFile == null || parent.LastCreateFile.CreationTime > file.CreationTime)
                    {
                        parent.LastCreateFile = file;
                    }
                    if (parent.LastOpenFile == null || parent.LastOpenFile.LastAccessTime > file.LastAccessTime)
                    {
                        parent.LastOpenFile = file;
                    }
                    parent = (parent._node.Parent ?? new TreeNode()
                    {
                        Tag = null
                    }).Tag as myNodeTag;
                }
            }
Esempio n. 2
0
            /// <summary>
            /// 在追加子节点时,对Tag进行更新
            /// </summary>
            /// <param name="file"></param>
            private void 更新信息(DirectoryInfo Dir)
            {
                FileType = FileType.文件夹;
                //只管父级
                myNodeTag parent = (_node.Parent ?? new TreeNode()
                {
                    Tag = null
                }).Tag as myNodeTag;

                while (parent != null)
                {
                    if (parent.LastOpenDir == null || parent.LastOpenDir.LastAccessTime > Dir.LastAccessTime)
                    {
                        parent.LastOpenDir = Dir;
                    }
                    parent = (parent._node.Parent ?? new TreeNode()
                    {
                        Tag = null
                    }).Tag as myNodeTag;
                }
            }
Esempio n. 3
0
 /// <summary>
 /// 添加节点之前 修改Tag
 /// </summary>
 /// <param name="curtn"></param>
 /// <param name="chid"></param>
 /// <param name="isFile"></param>
 private void AddChildNode(TreeNode curtn, TreeNode chid, bool isFile, int?idx = null)
 {
     if (this.treeView1.InvokeRequired)
     {
         delAddChildNode stcb = new delAddChildNode(AddChildNode);
         this.Invoke(stcb, new object[] { curtn, chid, isFile, idx });
     }
     else
     {
         //this.txt_a.Text = text;
         var oldTag = chid.Tag;
         try
         {
             if (idx == null)
             {
                 curtn.Nodes.Add(chid);
             }
             else
             {
                 curtn.Nodes.Insert(idx ?? 0, chid);
             }
             var newTag = new myNodeTag(chid);
             newTag.Tag = oldTag;
             if (oldTag is myNodeTag)
             {
                 ;
             }
             else
             {
                 chid.Tag = newTag;
             }
             chid.SelectedImageIndex = chid.ImageIndex = isFile ? 2 : 1;
             chid.ToolTipText        = chid.Name;
         }
         catch (Exception)
         {
         }
     }
 }