On Thu, 08 Aug 2002 17:17:12 -0300, Ricardo Montiel wrote:
>I need to delete all empty folders (up to three sub-levels, if this matters)
>for a given location. But when I try the following:
>
>#!perl -w
>use strict;
>use File::Find;
># use Mac::Files;
>
>finddepth (sub {
> rmdir $_;
> # FSpDelete $_;
> }, 'Hard Disk:Support:); # thanks merlyn
But still you forgot a closing quote o,n the path.
>all the sub-level folders - either empty or with files inside them - are
>deleted, except the top-level folder ('Support:'). Bear in mind that I tried
>to make use of FSpDelete as well, but I get the same unwanted result.
>
>What am I doing wrong?
For the directory itself, the callback is called with $_ set to "." on
Unixy/Win systems (likely with ":" on a Mac -- ?). That's the only
directory for which that is the case. rmdir "." won't ever work. I thik
that if you'd do
rmdir $File::Find::name;
likely it will work, because now it's no longer an exception: for all
directories, rmdir is called with the full path. I *think* it will work.
--
Bart.