63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
# File 'ext/ae-file-history/ae-file-history.rb', line 63
def dir(_path)
node = nil
parent = self
sons.each{|_tree|
["\\","/"].include?(_path[0,1])?_index = 1:_index=0
if _path[_index.._tree.label.length-1+_index] == _tree.label
res = _path[_tree.label.length+_index.._path.length-1]
if ["\\","/"].include?(res[0,1])
parent = _tree
node= _tree.dir(res)
end
end
break if node != nil
}
if node == nil
if _path.length > 0 && (_path.include?("/")||_path.include?("\\"))
_path.include?("/")?_sep="/":_sep="\\"
_parent_length = _path.length - _path.split(_sep)[-1].length
_parent_path = _path[0.._parent_length-2]
if _parent_path != _path
parent = parent.dir(_parent_path)
_path = _path[_parent_length-1.._path.length-1]
end
end
node = TreeNode.new(parent,'KDir') do |_node|
_node.label=_path
if ["\\","/"].include?(_node.label[0,1])
_node.label = _node.label[1..-1]
end
parent.rif == "root"?parent_rif = "":parent_rif=parent.rif
_node.rif= (parent_rif+_path).sub(":",'%%%')
end
end
return node
end
|