Process Directory and subdirectories Recursively



Hi,

I am trying to process a directory and all subdirectory recursively and
generate a list as the Unix command "ls -R" will display, but this seems not
to behave as it should.
My script only goes as far as processing the directory and the 1 step below
not more.

I have some like, but the script goes as far as 1_child and 2_child but no
further:
/parent/1_child/1_grant_child/././
/parent/2_child/2_grant_child/././

The script will finally be used on Windows OS, Unix system command cannot
be used.

Can anyone help?

Regards

Mimi

###############################################################
#!/usr/bin/perl -w


# Recursively read content of a folder and dynamically create a list on an
html page.

use CGI qw(:standard);
#use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
#use warnings;
use strict;



print header(),
start_html("Documents list");
print "<h1> Documents List</h1><br>\n";

my $source = "/depot/my_directory";

opendir (SOURCE, $source) or die "Cannot open the source folder for reading:
$!\n";

my $file;
while (defined($file = readdir(SOURCE))){
next if $file =~ /^\.{1,2}$/;
my $full_name = "$source/$file";
if (-d $full_name){
#my $full_name = "$source/$file";
print qq(<b>$file</b><br>);
process($full_name);
}else{
print qq(<a href="$full_name>$file</a><br>);
}
#next;
}
closedir (SOURCE);


print end_html();



# Subroutine to process subdirectory and list content.

sub process{

my ($path, $file, @files, $file_full_path);
$path = shift;
opendir (SUBDIR, $path) or die "Cannot open the subfolder for reading:
$!\n";

@files = sort grep {!/^\.{1,2}$/} readdir(SUBDIR);
closedir (SUBDIR);

for (@files){
$file_full_path = "$path/$_";

if (-d $_){
print qq(<b>$_</b><br />);
process($_);


}else {

print qq(<a href="$file_full_path">$_</a><br />);

}

}


}
#######################################################


Relevant Pages

  • RE: Process Directory and subdirectories Recursively
    ... My script only goes as far as processing the directory and the 1 step below ... or die "Cannot open the source folder for reading: ... closedir; ...
    (perl.beginners)
  • Re: Is it possible to get the text name of an enum?
    ... David Phillip Oster wrote: ... and a custom build script that runs a Unix command ...
    (comp.sys.mac.programmer.help)
  • Re: equivalent unix/dos command
    ... > How do I convert this unix command to a dos command? ... Write Python script on Linux, ... Linux solution for data management and processing. ...
    (comp.unix.shell)
  • [HPADM] Users not active
    ... Does any body know the Unix command or script to check users not logged in ... Benjamin Le ... To subscribe/unsubscribe to this list, ...
    (HP-UX-Admin)
  • Re: Reverse a file
    ... I wrote a script to do ... I'm just wonder if there is a Unix command that can do it? ... and acknowledges the legality of this contract. ...
    (comp.unix.shell)