|
#!/usr/bin/perl
if ( $#ARGV != 0 ){
printf(STDERR "Usage: perl treedir.pl directory\n");
exit(0);
}
glob $vtab="|";
glob @fmt=();
glob @dirs=();
search_dir($ARGV[0]);
sub listdir{
my ($dirname) = @_;
opendir(DIR_HANDLE, $dirname);
my (@dirlist) = readdir(DIR_HANDLE);
shift(@dirlist);
shift(@dirlist);
closedir(DIR_HANDLE);
return @dirlist;
}
sub getPath{
return join("/",@dirs);
}
sub search_dir{
my ($dirnm)=@_;
push(@dirs,$dirnm); # cd $dirnm
my (@entries)=listdir(getPath());
my ($count)=$#entries;
foreach $file (@entries) {
if (0==$count){
$vtab="\\";
}
display($file);
$vtab="|";
if (-d getPath()."/".$file){
if($count==0){
push(@fmt,"\t");
}
else {
push(@fmt,"|\t");
}
search_dir($file);
}
$count--;
}
pop(@fmt);
pop(@dirs); # cd ..
}
sub display{
my ($entry)=@_;
my ($formats)=join("",@fmt);
print $formats.$vtab."-----".$entry."\n";
}
windows linux 下都可使用。
查找的目录级非常大,足够实用。 |
|