http://qs1969.pair.com?node_id=560541


in reply to Identifying Directory

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