This will work on Windows
######################################################################
+#######
# It will return an array of @DirectoryPaths.
# $LocationOfThePostDir='C:\Post';
# Usage: @DirPaths=extractDirectoryPaths($LocationOfThePostDir);
# For example if you have Underneath of C:\Post \A \B\C
# It will return array members like:
# C:\\Post\\A
# C:\\Post\\B
# C:\\Post\\B\\C
sub extractDirectoryPaths #(C:\\Post)
{
my ($RootDir)=@_;
my(@A,$e,$C,@B,$b,$a,$c,@E,@D,$j,@F,$y,$x,$ff,@C,@DirectoryPaths);
#Purpose is to extract all paths to directories and subdirectories
@A=`dir $RootDir /s/w` ;
#@A=`dir $_[0] /s/w` ;
foreach $e (@A){
$C=substr($e,0,10);
#Extract only string that starts with Directory
if($C eq " Directory"){
push(@B,$e);
}
}
# Directory of C:\cr1_qc\crnqcV3\CM\Bering\Results\object_test_
+mssql\Root\DirectorySuite\GroupsandRolesSuite\OutputPages
# I want to start from C:
foreach $a (@B){
push(@C,substr($a,14));
}
#Put backslash \in front of\ so it will be C:\\cr1_qc\\
foreach $b (@C){
@D=split(/\\/,$b);
$c=join ("\\\\",@D);
push(@E,$c);
}
#Remove lash char that is whitespace
@F=trim(@E);
# foreach $j (@E)
# {
# $y=substr($j,0,-1);
# push(@F,$y);
# }
foreach $x (@F){
$ff=substr($x,1,1);
if($ff eq ":"){
push(@DirectoryPaths,$x);
}
}
return @DirectoryPaths;
}#EndOfextractDirectoryPaths