Try running this and see what you get - you can turn off either section
by setting the if (1) { to if (0) { - mine failed at 248 and 238 :

use strict;
use warnings;

use File::Path;

my $base_dir = 'C:/fubar';              # base dir for test
my $start_dir = 'C:/fubar/a1234567890'; # start here
mkpath $start_dir or die "mkpath $start_dir: $! ($^E)" if not -d $start_dir;

my $len;
my $dir = $start_dir;

if (1) {        # compute longest path by trying longer dir names

while (1) {
        $dir .= '1234567890';
        $len = length $dir;
        if (not mkdir $dir) {
                warn "$dir ($len): $! ($^E)" if $debug;
                $dir =~ s/1234567890$//;
                rmdir $dir or warn "rmdir $dir: $! ($^E)";
                last;
        }
        Win32::Sleep 250;       # safety sleep
}

while (1) {
        $len = length $dir;
        if (not mkdir $dir) {
                warn "$dir ($len): $! ($^E)" if $debug;
                last;
        }
        $dir .= '1';
        Win32::Sleep 250;
}
print "Failed on $len character path using mkdir '$dir'\n";

# Failed on 248 character path using mkdir 
'C:/fubar/a1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789011111111'

sleep 30;       # take time to check tree here

rmtree ($base_dir, 0, 0) or die "rmtree $base_dir: $! ($^E)";

}

if (1) {        # compute longest path by adding subdir names

$start_dir = 'C:/fubar/abcdefghijk';
mkpath $start_dir or die "mkpath $start_dir: $! ($^E)" if not -d $start_dir;
$dir = $start_dir;
while (1) {
        $dir .= '/abcdefghijk';
        $len = length $dir;
        if (not mkdir $dir) {
                warn "$dir ($len): $! ($^E)" if $debug;
                $dir =~ s/\/abcdefghijk$//;
                rmdir $dir or warn "rmdir $dir: $! ($^E)";
                $dir .= '/a';
                last;
        }
        Win32::Sleep 250;
}

while (1) {
        $len = length $dir;
        if (not mkdir $dir) {
                warn "$dir ($len): $! ($^E)" if $debug;
                last;
        }
        $dir .= '/a';
        Win32::Sleep 250;
}
print "Failed on $len character path using mkdir '$dir'\n";

# Failed on 238 character path using mkdir 
'C:/fubar/abcdefghijk/abcdefghijk/abcdefghijk/abcdefghijk/abcdefghijk/abcdefghijk/abcdefghijk/abcdefghijk/abcdefghijk/abcdefghijk/abcdefghijk/abcdefghijk/abcdefghijk/abcdefghijk/abcdefghijk/abcdefghijk/abcdefghijk/abcdefghijk/abcdefghijk/a'

sleep 30;       # take time to check tree here
rmtree ($base_dir, 0, 0) or die "rmtree $base_dir: $! ($^E)";

}

__END__



-- 
  ,-/-  __      _  _         $Bill Luebkert    Mailto:[EMAIL PROTECTED]
 (_/   /  )    // //       DBE Collectibles    Mailto:[EMAIL PROTECTED]
  / ) /--<  o // //      Castle of Medieval Myth & Magic http://www.todbe.com/
-/-' /___/_<_</_</_    http://dbecoll.tripod.com/ (My Perl/Lakers stuff)
_______________________________________________
ActivePerl mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to