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