Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2181 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  Déplacement fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Déplacement fichier

n°2249648
coolkis
Posté le 28-01-2015 à 16:54:11  profilanswer
 

Bonjour,
 
J'aurais besoin de déplacer un fichier.
j'ai le petit bout de code ci-dessous qui est censé le faire mais rien ne se passe !
 

Code :
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use File::Copy qw/move/;
  5. my $fichier = 'D:/temp/toto.txt';
  6. my $destination = 'D:/temp/Archive/toto.txt';
  7. move($fichier, $destination);


 
Je suis sur un environnement Windows ! Y a t'il une faute dans ma commande ?
 
Merci d'avance.

mood
Publicité
Posté le 28-01-2015 à 16:54:11  profilanswer
 

n°2249714
slr56
Tout problème a sa solution.
Posté le 29-01-2015 à 13:34:31  profilanswer
 

Bonjour,

 

Je ne connais pas le Perl mais à mon avis, dans le chemin de destination,  tu ne dois préciser que le dossier

Code :
  1. (my $destination = 'D:/temp/Archive/';)

 

et non pas le chemin entier avec le fichier. (Avec ou sans slash à la fin.)


Message édité par slr56 le 29-01-2015 à 13:35:17

---------------
Configurations type du moment : https://forum.hardware.fr/hfr/Hardw [...] 1331_1.htm  https://www.jouannetphotographe.com
n°2249715
coolkis
Posté le 29-01-2015 à 13:40:09  profilanswer
 

Merci slr56 pour ta réponse.
En fait j'ai résolu mon problème avec le code suivant :
 

Code :
  1. #!/usr/bin/perl
  2.     use strict;
  3.     use warnings;
  4.     use File::Copy;
  5.     my $fichier = '"D:\\temp\\toto.txt";
  6.     my $destination = "D:\\temp\\Archive";
  7.     move($fichier,$destination);

n°2249733
gilou
Modérateur
Modzilla
Posté le 29-01-2015 à 16:15:51  profilanswer
 

Sauf que la solution de slr56 est meilleure.
Ou a la limite
my $fichier = 'D:\temp\toto.txt';
my $destination = 'D:\temp\Archive';
Mais on n'utilise pas de " autour d'un nom de fichier en perl si le nom est constant. C'est une habitude à prendre.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2249734
coolkis
Posté le 29-01-2015 à 16:46:32  profilanswer
 

Ok merci pour l'info.
 
Cependant est-il possible de déclarer des variables génériques ?
Je m'explique :
 
Je voudrais déclarer la variable $fichier du genre :

Code :
  1. my $fichier = 'D:\temp\toto*.txt';


 
Tout simplement car par exemple le fichier peut-être de la forme toto.AAAA.MM.JJ.txt.
 
Est-ce que cela est possible en perl svp ?

n°2249735
coolkis
Posté le 29-01-2015 à 16:53:32  profilanswer
 

Il suffit de déclarer la variable comme ci-dessous:

Code :
  1. my $fichier = glob('D:\temp\toto*.txt');

n°2249762
gilou
Modérateur
Modzilla
Posté le 29-01-2015 à 19:54:23  profilanswer
 

Non, ça marche pas ainsi:
D:\temp\toto*.txt c'est une expression régulière /D:\\temp\\toto.*\.txt/
donc tout dépend ensuite de ta manière de l'utiliser.

 

glob ça renvoie normalement une liste (qu'on assigne a une variable de liste), alors si tu as plus d'un fichier qui matche ton expression régulière, c'est mal barré, car avec une variable scalaire alors glob va te renvoyer le premier élément de la liste (et des appels suivants a glob sans paramètres renvoient les éléments de la liste, un a un).
Si tu es sur qu'il y a un seul fichier qui matche, ça marche en effet, mais compter la dessus, euh...

 

A+,


Message édité par gilou le 30-01-2015 à 12:17:06

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2249802
coolkis
Posté le 30-01-2015 à 08:55:32  profilanswer
 

D'accord ! Donc quelle est la manière la plus efficace pour déclarer la variable stp ?

n°2249846
gilou
Modérateur
Modzilla
Posté le 30-01-2015 à 12:14:49  profilanswer
 

Comme je te l'ai dit, pour savoir si tu as besoin d'une liste (my @fichiers = glob('D:\temp\toto*.txt');) ou d'une regexp (my $fileregexp =qr/D:\\temp\\toto.*\.txt/;) ça dépend de ce que tu vas en faire.
A+,


Message édité par gilou le 30-01-2015 à 12:16:16

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  Déplacement fichier

 

Sujets relatifs
renomer mon fichier excel a l ouverture par deux celluledéplacement fichier sur lecteur réseau
Copie, déplacement, renommage de fichier, etc[langage C] Exercice déplacement et renommer fichier
Problème de déplacement d'un fichier uploadéDéplacement/copie de fichier dans un trigger SQL Server
Deplacement d'un fichierdéplacement fichier
[PHP] Déplacement de fichierFile.renameTo(File) et déplacement de fichier
Plus de sujets relatifs à : Déplacement fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR