romandas has asked for the wisdom of the Perl Monks concerning the following question:
Hello all,
I am using ActiveState Perl 5.8.8 and File::Find to get a listing of all files on a mapped network drive in Windows XP. However, the program runs for awhile then dies with this error:
Can't cd to j:/AAA/Bargleblasters/Blued wrangler and confluenced switchbacks copies are filed with another cheese/BB mashed/ss-wwwwww tartan/1234 AS Quince/1DD LKu & Dogs & References/1 GH ASDFd/KCOES CVBND/4 is spring 2232 BFGH Vicarsd/11-1 Confusications/22-3-2 JJJJJ../.. at C:/Perl/lib/File/Find.pm line 940.Is there a way to catch this error, so the program can continue? It's not a matter of user rights; I can cd to the location normally and read the files in it. I am curious if maybe the length of the path comes into play (IIRC, there's only so much you can handle via network as opposed to a physical drive path)
Any guidance would be appreciated. Here's my code:
#!/perl/bin/perl use strict; use warnings; use File::Find; find(\&wanted, ('j:', 'k:', 'l:', 'm:')); sub wanted { if ($File::Find::name =~ m/lnk$/i) { warn("Cannot process $File::Find::name: Shortcut\n"); } elsif (-f $File::Find::name) { print($File::Find::name, "\n"); } else { warn("Cannot process $File::Find::name: Directory or unknown t +ype\n"); } }
Update (for samtregar): The directory in question has two files in it, and no directories (none named '..', '../..', or any other funny business)
|
|---|