common/tools/listdir.pl
changeset 39 9edae8fe1416
child 78 52cc4f7310db
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/tools/listdir.pl	Tue Apr 14 17:44:14 2009 +0100
@@ -0,0 +1,38 @@
+#!perl -w
+use strict;
+
+my $dir      = shift or die "Usage: $0 <dir> \n";   #  provided dir to traverse
+my $filelist = [];
+
+# fwd declaration to prevent warning
+sub recursedir($$);
+
+# run recurse and print
+recursedir ($dir, $filelist);
+print $_, "\n" for(@$filelist);
+
+sub recursedir($$) {
+
+  my $dir  = shift @_;
+  my $list = shift @_;
+
+  if(opendir(DIR, "$dir")) {
+    #  list dir
+    for my $file(grep { !/^\./ } readdir DIR) {
+      if(-d "$dir\\$file") {
+        #  traverse subdirs
+        recursedir("$dir\\$file", $list);
+      }
+      elsif(-f "$dir\\$file") {
+        #  if file then swap (any present) fwd to bkslash and add to list        
+        $dir   =~s/\//\\/;
+        $file  =~s/\//\\/;
+        push @$list, "$dir\\$file";
+      }
+    }
+    closedir DIR;
+  }
+  else {
+    warn "Cannot open the directory '$dir' $!\n";
+  }
+}