贴点经典代码:
/***节点路径***/#region/***节点路径***/
/**//// <summary>
/// 根据指定节点生成表示此节点的路径
/// </summary>
/// <param name="node"></param>
/// <returns></returns>
public string GetNodePathStr(TreeNode node)
{
if(node == null)
{
return "";
}
if(node.Parent == null)
{
return "";
}
//利用堆栈 压进 parent结点
Stack pathStack = new Stack();
string strPath = "";
pathStack.Push(node.Text);
while(node.Parent != null)
{
pathStack.Push(node.Parent.Text);
node = node.Parent;
}
int count = pathStack.Count;
for(int i=0; i<count; i++)
{
if( i > 0)
{
if(i == 1)
strPath = pathStack.Pop().ToString();
else
strPath += "\\" + pathStack.Pop().ToString();
}
else
{
pathStack.Pop();
}
}
return strPath + "\\";
}
#endregion
/**//// <summary>
/// 根据指定节点生成表示此节点的路径
/// </summary>
/// <param name="node"></param>
/// <returns></returns>
public string GetNodePathStr(TreeNode node)
{
if(node == null)
{
return "";
}
if(node.Parent == null)
{
return "";
}
//利用堆栈 压进 parent结点
Stack pathStack = new Stack();
string strPath = "";
pathStack.Push(node.Text);
while(node.Parent != null)
{
pathStack.Push(node.Parent.Text);
node = node.Parent;
}
int count = pathStack.Count;
for(int i=0; i<count; i++)
{
if( i > 0)
{
if(i == 1)
strPath = pathStack.Pop().ToString();
else
strPath += "\\" + pathStack.Pop().ToString();
}
else
{
pathStack.Pop();
}
}
return strPath + "\\";
}
#endregion
以前我写过,用右键实现 文件夹 新建、重命名、删除等功能的项目。今天找到该项目(netdisk)对比一下。相信收获会更多。