function InsertIntoTree(param,node,level) //递归遍历存储数据
{
var iFind = param.indexOf('\\');
var vName = param;
var vPath = "";
if(level<1)
{
return;
}
level--;
if(iFind>0)
{
vPath = param;
vName = vName.splice(iFind,vName.length);
vPath = vPath.splice(0,iFind+1);
}
var vChild;
vChild =
{
sName:vName,
sChild:[]
}
node.sChild.push(vChild);
if(vPath.length)
{
InsertIntoTree(vPath,vChild,level);
}
}
function InsertIntoHtml(elem,path,level)
{
var iFind = path.indexOf('\\');
var vName = path;
var vPath = "";
//stdout.println("parent: "+elem.$(caption).text+" ,child: "+path);
if(level<1 || path.length < 1)
{
return;
}
level--;
var vArr = elem.$$(option);
if(iFind>0)
{
vPath = path;
vName = vName.splice(iFind,vName.length);
vPath = vPath.splice(0,iFind+1);
}
var i;
var vChildElem = null;
for(i=0;i<vArr.length;i++)
{
var vSpanArr = vArr[i].$$(span);
if(vSpanArr.length)
{
if(vName == vSpanArr[1].text)
{
vChildElem = vArr[i];
InsertIntoHtml(vChildElem,vPath,level);
break;
}
}
}
if(i>=vArr.length)
{
vChildElem = CombinationTree(elem,vName,level);
elem.append(vChildElem);
var tmpArr = elem.$$(option);
vChildElem = tmpArr[tmpArr.length-1];
InsertIntoHtml(vChildElem,vPath,level);
}
}
function ConstructTree(elem,node ,level) //树数据插入.
{
var i;
var vArr = elem.$$(option);
var vChildElem = null;
for(i=0;i<vArr.length;i++)
{
var vSpanArr = vArr[i].$$(span);
if(vSpanArr.length)
{
if(node.sName == vSpanArr[1].text)
{
vChildElem = vArr[i];
break;
}
}
}
level--;
if(i>=vArr.length)
{
if(level>0)
{
vChildElem = CombinationTree(elem,node.sName,1);
}
else
{
vChildElem = CombinationTree(elem,node.sName,0);
}
elem.append(vChildElem);
var tmpArr = elem.$$(option);
vChildElem = tmpArr[tmpArr.length-1];
}
if(level<1)
{
return;
}
stdout.println("ConstructTree name:"+node.sName);
if(node.sChild == undefined)
{
stdout.println("ConstructTree sChild is null");
return;
}
stdout.println("ConstructTree length:"+node.length);
for(i=0;i<node.sChild.length;i++)
{
var vChildNode = node.sChild[i];
ConstructTree(vChildElem ,vChildNode ,level);
}
}
function CombinationTree(PathName,AllPath,bHasAppendChild)
{
var vOutHtml;
if(bHasAppendChild>0)
{
vOutHtml = "<option bHasAppendChild=1 filename=\""+AllPath+"\">\
<caption><span class=\"FileIcon\"></span><span >"+AllPath+"</span></caption>\
</option>"
}
else
{
vOutHtml = "<option bHasAppendChild=0 filename=\""+AllPath+"\">\
<caption><span class=\"FileIcon\"></span><span >"+AllPath+"</span></caption>\
</option>"
}
var FilePath = "<option filename="+AllPath+">\
<caption><span class=\"FileIcon\"></span><span >"+AllPath+"</span></caption>\
</option>"
return vOutHtml;
}
function printTree(node ,path) //输出打印 备用
{
stdout.println("path: "+path+" ,name:"+node.sName);
var i;
var vNextPath = node.sName;
if(path.length)
{
vNextPath = path +"\\"+ node.sName;
}
for(i=0;i<node.sChild.length;i++)
{
printTree(node.sChild[i],vNextPath);
}
}
for(var i = 0;i<ArrNode.length;i++) //结束就是出去的条件
{
var vNextPath = ArrNode[i].name;
if(ArrNode.length)
{
vNextPath = HeadPath +"\\"+ ArrNode[i].name;
}
SetArrFolderPath(ArrNode[i].items,vNextPath,ArrNode[i].key);
}
NextKey: 0 ,ArrNode: 3,HeadPath:H:
NextKey: 0.0 ,ArrNode: 0,HeadPath:H:\System Volume Information
NextKey: 0.1 ,ArrNode: 1,HeadPath:H:\$RECYCLE.BIN
NextKey: 0.1.0 ,ArrNode: 0,HeadPath:H:\$RECYCLE.BIN\S-1-5-21-1485814674-1413311373-161491199-1001
NextKey: 0.2 ,ArrNode: 2,HeadPath:H:\aaa
NextKey: 0.2.0 ,ArrNode: 1,HeadPath:H:\aaa\bbb
NextKey: 0.2.0.0 ,ArrNode: 1,HeadPath:H:\aaa\bbb\ccc
NextKey: 0.2.0.0.0 ,ArrNode: 1,HeadPath:H:\aaa\bbb\ccc\dddd
NextKey: 0.2.0.0.0.0 ,ArrNode: 1,HeadPath:H:\aaa\bbb\ccc\dddd\eee
NextKey: 0.2.0.0.0.0.0 ,ArrNode: 1,HeadPath:H:\aaa\bbb\ccc\dddd\eee\hhhh
NextKey: 0.2.0.0.0.0.0.0 ,ArrNode: 1,HeadPath:H:\aaa\bbb\ccc\dddd\eee\hhhh\nnnn
NextKey: 0.2.0.0.0.0.0.0.0 ,ArrNode: 1,HeadPath:H:\aaa\bbb\ccc\dddd\eee\hhhh\nnnn\mmmm
NextKey: 0.2.0.0.0.0.0.0.0.0 ,ArrNode: 0,HeadPath:H:\aaa\bbb\ccc\dddd\eee\hhhh\nnnn\mmmm\ffff
NextKey: 0.2.1 ,ArrNode: 1,HeadPath:H:\aaa\rrrrr
NextKey: 0.2.1.0 ,ArrNode: 2,HeadPath:H:\aaa\rrrrr\ttttt
NextKey: 0.2.1.0.0 ,ArrNode: 0,HeadPath:H:\aaa\rrrrr\ttttt\44444444
NextKey: 0.2.1.0.1 ,ArrNode: 0,HeadPath:H:\aaa\rrrrr\ttttt\ggggg