InSilicoSpectro::Utils::Files - InSilicoSpectro::Utils::Files documentation


InSilicoSpectro documentation Contained in the InSilicoSpectro distribution.

Index


Code Index:

NAME

Top

InSilicoSpectro::Utils::Files

DESCRIPTION

Top

Miscelaneous Files utilities

FUNCTIONS

Top

rmdirRecursive($dir, [$limit])

Remove recursively directory $dir (dies if there is more than $limit files in it)

COPYRIGHT

Top

AUTHORS

Top

Alexandre Masselot, www.genebio.com


InSilicoSpectro documentation Contained in the InSilicoSpectro distribution.

use strict;

package InSilicoSpectro::Utils::Files;
require Exporter;

our (@ISA,@EXPORT,@EXPORT_OK);
@ISA = qw(Exporter);

@EXPORT = qw(&rmdirRecursive);
@EXPORT_OK = ();

use File::Find::Rule;
use File::Spec;
use Carp;

sub rmdirRecursive{
  my ($dir, $limit)=@_;
  my @files=File::Find::Rule->file()->in($dir);
  my $n=scalar @files;
  croak "attempt to remove $n files (>$limit)" if (defined $limit) && ($n>$limit);
  foreach(@files){
    unlink $_ or croak "cannot remove $_: $!";
  }
  my @dirs=File::Find::Rule->directory->in($dir);
  foreach (reverse sort @dirs){
    rmdir $_ or croak "cannot rmdir $_: $!";
  }
}


1;