I use something like this to delete temporary directories... it deletes
files in the dir before deleting it though...
foreach $Dir (@TempDirs) {
if (-e $Dir and -d $Dir) {
print "\n-> Looking in directory $Dir\n";
&ScanDir("$Dir");
} # end of if
} # end of foreach
sub ScanDir {
my ($workdir) = shift;
my ($startdir) = &cwd; # keep track of where we began
chdir($workdir) or die "\nUnable to enter dir $workdir:$!\n";
opendir(DIR, ".") or die "\nUnable to open $workdir:$!\n";
my @names = readdir(DIR) or die "\nUnable to read
$workdir:$!\n";
closedir(DIR);
OUTER: foreach my $name (@names) {
next if ($name eq ".");
next if ($name eq "..");
foreach $entry (@exclude) {
if ($name eq "$entry") {
print "\n$entry is in the exclusion
list.";
print "\nSkipping.\n";
next OUTER;
}# end of if excluded
} # end of foreach excluded list
if (-d $name) { # is this a directory?
print "\n-> Looking in directory $name";
&ScanDir($name);
print "\nAttemtping to delete directory $name";
rmdir($name) or warn "\nUnable to remove
directory $name: $!\n";
next;
} # end of if
if ($name ne "") {
print "\nAttemtping to delete file $name";
unlink($name) or warn "\nUnable to delete file
$name: $!\n";
} # end of if
} # end of foreach
chdir($startdir) or die "\nUnable to change to dir $startdir:
$!\n";
} # end of sub ScanDir
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On
> Behalf Of John Deretich
> Sent: Tuesday, September 30, 2003 4:05 PM
> To: Perl-Win32-Admin-Request (E-mail)
> Subject: removing empty directories
>
>
> Hello,
>
> I was wondering if anyone has a script that
> will remove empty directories and subdirectories.
> The code that I am using will delete the entries
> at the first sublevel but not at multiple sublevels.
>
> Here's my code:
>
> opendir(EMPTYDIR, $searchdrive1) ;
> while ($directoryempty = readdir(EMPTYDIR)) {
> if ($directoryempty ne "." && $directoryempty ne "..") {
> $directoryempty = $searchdrive1 . "\\" . $directoryempty;
> if (-d $directoryempty) {
> opendir(EMPTY, $directoryempty);
> while ($subdirectoryempty = readdir(EMPTY)) {
> if ($subdirectoryempty ne "." &&
> $subdirectoryempty
> ne "..") {
> $subdirectoryempty =
> $directoryempty . "\\" .
> $subdirectoryempty;
> system ("rmdir
> \"$subdirectoryempty\" ") || warn
> "Cannot remove $subdirectoryempty: $! \n";
> }
> }
> system ("rmdir \"$directoryempty\" ") || warn
> "Cannot remove
> $directoryempty: $! \n";
> }
> }
> }
>
> I have File::Path but when I run it, it will remove more than
> what I need.
>
> thanks,
>
> John
> _______________________________________________
> Perl-Win32-Admin mailing list
> [EMAIL PROTECTED]
> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
>
_______________________________________________
Perl-Win32-Admin mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs