| Tree::Simple::Visitor::LoadDirectoryTree(3pm) | User Contributed Perl Documentation | Tree::Simple::Visitor::LoadDirectoryTree(3pm) |
Tree::Simple::Visitor::LoadDirectoryTree - A Visitor for loading the contents of a directory into a Tree::Simple object
use Tree::Simple::Visitor::LoadDirectoryTree;
# create a Tree::Simple object whose
# node is path to a directory
my $tree = Tree::Simple->new("./");
# create an instance of our visitor
my $visitor = Tree::Simple::Visitor::LoadDirectoryTree->new();
# set the directory sorting style
$visitor->setSortStyle($visitor->SORT_FILES_FIRST);
# create node filter to filter
# out certain files and directories
$visitor->setNodeFilter(sub {
my ($item) = @_;
return 0 if $item =~ /CVS/;
return 1;
});
# pass the visitor to a Tree::Simple object
$tree->accept($visitor);
# the tree now mirrors the structure of the directory
This visitor can be used to load a directory tree into a Tree::Simple hierarchy.
Two pre-built functions are supplied and described below.
Tree/
Simple.pm
Simple/
Visitor.pm
VisitorFactory.pm
Visitor/
PathToRoot.pm
Tree/
Simple/
Visitor/
PathToRoot.pm
Visitor.pm
VisitorFactory.pm
Simple.pm
The node value of the $tree argument (gotten by calling "getNodeValue") is considered the root directory from which we begin our traversal. We use File::Spec to keep our paths cross-platform, but it is expected that you will feed in a valid path for your OS. If the path either does not exist, or is not a directory, then an exception is thrown.
The $tree argument which is passed to "visit" must be a leaf node. This is because this Visitor will create all the sub-nodes for this tree. If the tree is not a leaf, an exception is thrown. We do not require the tree to be a root though, and this Visitor will not affect any nodes above the $tree argument.
None that I am aware of. Of course, if you find a bug, let me know, and I will be sure to fix it.
See the CODE COVERAGE section in Tree::Simple::VisitorFactory for more information.
These Visitor classes are all subclasses of Tree::Simple::Visitor, which can be found in the Tree::Simple module, you should refer to that module for more information.
stevan little, <stevan@iinteractive.com>
Copyright 2004, 2005 by Infinity Interactive, Inc.
<http://www.iinteractive.com>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| 2016-05-06 | perl v5.22.2 |