/// <summary> /// 删除某个节点 /// </summary> /// <param name="fileNode"></param> /// <param name="bAsk"></param> public static void DeleteNode(FileTreeNode fileNode, bool bAsk = true) { if (fileNode == null) { MessageBox.Show("Please Select A file or folder In ViewList !", "Error"); return; } //获取用户输入 if (bAsk) { DialogResult dr = MessageBox.Show("Are you sure to delete the selection file or folder ?", "Delete Asking", MessageBoxButtons.YesNo); if (dr != DialogResult.Yes) { return; } } //确认删除 //首先从当前节点中删除掉这个节点 CurrentNode.SubNodes.Remove(fileNode); if (fileNode.SubNodes != null) { //如果是一个文件夹,还需要去TreeView删除对应的TreeNode //寻找他的父节点 TreeNode CurTreeNode = FindNodeInTree(uiTreeNode.TopNode, CurrentNode); TreeNode treeNode = FindNodeInTree(uiTreeNode.TopNode, fileNode); //删除被删除的节点 CurTreeNode.Nodes.Remove(treeNode); } //设置ListView TurnCurrentNode(CurrentNode); BLLControl.SaveDirectoryInfo(); }
/// <summary> /// 修改某个节点的节点名字[文件名或目录名] /// </summary> /// <param name="fileNode"></param> public static void RenameNode(FileTreeNode fileNode) { if (fileNode == null) { MessageBox.Show("Please Select A file or folder In ViewList !", "Error"); return; } //获取用户输入 string folderName = Interaction.InputBox("Please Set A name of your selection."); //如果为空,则忽略 if (folderName == "") { return; } //首先修改节点名字 fileNode.NodeName = folderName; //设置ListView TurnCurrentNode(CurrentNode); //如果是文件夹,那么修改TreeView的内容项 if (fileNode.SubNodes != null) { //在TreeView中找到当前节点 TreeNode treeNode = FindNodeInTree(uiTreeNode.TopNode, fileNode); treeNode.Text = fileNode.NodeName; } BLLControl.SaveDirectoryInfo(); }
/// <summary> /// 粘帖数据 /// </summary> public static void PasteNode() { if (CutTemp == null) { return; } AddNode((FileTreeNode)CutTemp.Clone()); BLLControl.SaveDirectoryInfo(); }
/// <summary> /// 根据FileID来删除节点 /// </summary> /// <param name="fileID"></param> public static void DeleteNodeByFileID(string fileID) { //从整个目录入手删除节点 DeleteFileByID(BLLControl.RootFileTree, fileID); //从当前浏览页删除节点 List <FileTreeNode> listNode = new List <FileTreeNode>(); FindNodeByFileID(fileID, CurrentNode, listNode); foreach (FileTreeNode node in listNode) { CurrentNode.SubNodes.Remove(node); } TurnCurrentNode(CurrentNode); BLLControl.SaveDirectoryInfo(); }
public static void ReplaceNodeByFileID(string fileID, FileTreeNode zoneNode, FileTreeNode destNode) { List <FileTreeNode> list = new List <FileTreeNode>(); if (zoneNode == null) { zoneNode = FreeFolder; } FindNodeByFileID(fileID, zoneNode, list); foreach (FileTreeNode node in list) { node.CreateDate = destNode.CreateDate; node.FileInfo = destNode.FileInfo; node.FileKind = destNode.FileKind; node.FileSize = destNode.FileSize; node.FromApp = destNode.FromApp; } TurnCurrentNode(CurrentNode); BLLControl.SaveDirectoryInfo(); }
public static void AddNode(FileTreeNode fileNode) { //加入当前节点中 CurrentNode.SubNodes.Add(fileNode); //如果是增加一个文件,则不需要处理目录。 if (fileNode.SubNodes != null) { //在TreeView中找到当前节点 TreeNode treeNode = FindNodeInTree(uiTreeNode.TopNode, CurrentNode); //找不到选中的树,触发错误。 if (treeNode == null) { throw new Exception("不存在指定节点"); } TreeNode newNode = new TreeNode(); SetTreeNodeByObject(ref newNode, fileNode); treeNode.Nodes.Add(newNode); } TurnCurrentNode(CurrentNode); BLLControl.SaveDirectoryInfo(); }
/// <summary> /// 剪贴 /// </summary> /// <param name="fileNode"></param> public static void CutNode(FileTreeNode fileNode) { CutTemp = fileNode; DeleteNode(fileNode, false); BLLControl.SaveDirectoryInfo(); }