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

  FORUM HardWare.fr
  Programmation
  Perl

  portabilité Linux<->Windows : séparateur des chemins de fichiers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

portabilité Linux<->Windows : séparateur des chemins de fichiers

n°1597074
franceso
Posté le 08-08-2007 à 10:50:59  profilanswer
 

[:zytra] Salut les mongueurs,
 
juste une petite question bête de portabilité :
 
Est-ce qu'un truc de ce genre est portable ?

my $dir = shift;
my $file = shift;
my $path = $dir."/".$file;
open (FILE, "<$path" );


Des rapides recherches sur le Web donnent des résultats contradictoires : la documentation officielle semble dire qu'il faut penser à utiliser "\\" à la place de "/" pour les chemins de fichiers sous Windows, alors qu'ici on me dit que Perl fait la conversion automatiquement en interne :??:
 
Je testerais bien, mais j'ai pas de machine windows à disposition...


---------------
TriScale innov
mood
Publicité
Posté le 08-08-2007 à 10:50:59  profilanswer
 

n°1597094
franceso
Posté le 08-08-2007 à 11:29:46  profilanswer
 

Bon, je m'autoréponds après une petite discussion sur BlaBla@OSA :
 
il semblerait que la seule vraie solution portable soit d'utiliser File::Spec. Je vais quand même essayer de trouver une machine windows pour tester si la solution du remplacement "automagique" des séparateurs par Perl marche aussi...


Message édité par franceso le 08-08-2007 à 11:30:13

---------------
TriScale innov
n°1597098
pmarion
Posté le 08-08-2007 à 11:36:02  profilanswer
 

Bonjour,  
 
Pour des fonctions de base comme 'open', 'unlink' les séparateurs '/' sont interprétés de façon totalement transparente sous Win32.
Par contre pour des fonctions comme 'system $cde' il faut être très prudent pour le nom de la commande ainsi que pour les optionss, on devient vite non portable

n°1597100
franceso
Posté le 08-08-2007 à 11:41:36  profilanswer
 

merci :jap:
 

pmarion a écrit :

Pour des fonctions de base comme 'open', 'unlink' les séparateurs '/' sont interprétés de façon totalement transparente sous Win32.
Par contre pour des fonctions comme 'system $cde' il faut être très prudent pour le nom de la commande ainsi que pour les optionss, on devient vite non portable


Et quid des bibliothèques additionnelles (genre Image::Magick ou autres)? Peut-on supposer qu'elles n'utilisent que des fonctions de base comme open(), ou bien doit-on prendre des précautions particulières ?
 
Pour ce qui est des 'system', 'exec' ou autres, j'ai déjà pris soin de les éviter pour garantir une meilleure portabilité...


---------------
TriScale innov
n°1597104
pmarion
Posté le 08-08-2007 à 11:48:07  profilanswer
 

Pour Image::Magick, ainsi que pour tous les modules propres, il n'y a pas de problème.
 

n°1597105
franceso
Posté le 08-08-2007 à 11:48:29  profilanswer
 

:jap: Merci


---------------
TriScale innov

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

  portabilité Linux<->Windows : séparateur des chemins de fichiers

 

Sujets relatifs
synchro de fichiers entre 2 dossiers: XCOPY?Comment gerer une fenêtre de mise à jours fichiers due à une erreur?
Compilation 64-bit avec gcc sous Windows[PHP] Solde avec séparateur de milliers et 2 chiffres après la virgule
[Résolu] Problème de décalage de date java sous windows vistaApi Windows - Information IE
un dossier avec plusieurs fichiers à traiter : console casséeAppel de commande Windows( system !) en C++
Macro unique pour plusieurs fichiers excelsWindows Mobile 5 Japonais
Plus de sujets relatifs à : portabilité Linux<->Windows : séparateur des chemins de fichiers


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