Copie de contenu de repertoire

Copie de contenu de repertoire - Perl - Programmation

Marsh Posté le 19-07-2007 à 15:22:16    

Bonjour a tous,
 
je cherche à copier tout le contenu d'un repertoire "source" vers un repertoire "dest"
Dans ce rep source, il peut y avoir 3 ou 4 types différents de fichier : wav, txt, vox ou 3gp.
 
J'essaie d'abord de me concentrer sur les wav et je pensais que cette commande devait marcher :
 
copy (glob("$repsourcewav1[$j]/*.wav" ), glob("$repdestwav1[$j]/*.wav" )) ||die ("Err copy" );
 
mais en fait non :(
il copie rien du tout et en plus écrase certains de mes fichiers source par d'autres...  :cry:  
 
Y a t'il un moyen de copier directement le répertoire avec tous ses fichiers ?
Si oui, ce serait tip top ;)
 
Merci d'avance

Reply

Marsh Posté le 19-07-2007 à 15:22:16   

Reply

Marsh Posté le 19-07-2007 à 16:53:18    

J'ai trouvé un sub qui me semble pas mal
 

Citation :


sub Copier_Repertoire  
 {  
  my ( $dir_source, $dir_dest ) = @_;
    # On teste l'existance des répertoires
    die "Le répertoire source $dir_source n'existe pas\n" if ( ! -e $dir_source );
    die "Le répertoire destination $dir_dest existe déja\n" if ( -e $dir_dest );
     
    # On crée le répertoire destination
    mkdir ( $dir_dest, 0777 ) or die "Impossible de créer le répertoire $dir_dest : $!\n";
     
    # On ouvre le répertoire source
    opendir( DIR, $dir_source ) || die "Impossible d'ouvrir le répertoire $dir_source : $!\n";
     
    # On récupére la liste des éléments qu'il contient
    my @elmts = grep !/(?:^\.$)|(?:^\.\.$)/, readdir DIR;
    closedir DIR;
     
    # On copie
    foreach ( @elmts )
     {
      if ( -d "$dir_source/$_" )
       {
        Copier_Repertoire( "$dir_source/$_", "$dir_dest/$_" );
       }
      else
       {
        copy ( "$dir_source/$_", "$dir_dest/$_" )  || die "Impossible de créer le fichier $dir_dest/$_ : $!\n";
       }
     }
  }


 
et vu que je suis pas mal n0ob en perl  :sweat:  
je ne sais pas comment effectuer l'appel de cette sous-fonction avec mes rep en argument... re- :sweat:  
 
Merci de me filer un chti coup de main  :jap:

Reply

Marsh Posté le 19-07-2007 à 16:56:29    

[:w3c compliant]

Code :
  1. Copier_Repertoire  ('dir_source', 'dir_dest' ) ;

Reply

Marsh Posté le 19-07-2007 à 17:40:00    

merci :jap:
 
après moultes essais  :whistle: j'avais trouvé ;)
 
et ca marche  :bounce:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed