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

  FORUM HardWare.fr
  Programmation
  C++

  [résolu] [boost] problèmes avec copy_file

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu] [boost] problèmes avec copy_file

n°1645718
Riot
Buy me a riot
Posté le 20-11-2007 à 12:17:43  profilanswer
 

Bonjour,
 
J'ai un soucis avec copy_file de Boost, je me prends à chaque fois des exceptions dans la gueule quand je l'utilise.
Voici mon code :
 

Code :
  1. #include <boost/filesystem.hpp>
  2. namespace fs = boost::filesystem;
  3. int main( int argc, char* argv[] )
  4. {
  5.     try{
  6.         fs::copy_file( "C:/foo1/bar.txt", "C:/foo2" );
  7.     }
  8.     catch( fs::filesystem_error& e )
  9.     {
  10.         std::cerr << e.what() << ':' << e.system_error() << std::endl;
  11.     }
  12.     return 0;
  13. }


 
J'ai donc à chaque fois une exception, alors que foo1, foo2 et bar.txt qui existent bien ...
 
 
Auriez-vous une idée svp ?
Merci.
 
Note : le code erreur retourné est le 3. Mais j'ai pas encore trouvé à quoi ça correspond.
 
 
 
 
 
 
 
 
Solution :

Code :
  1. fs::copy_file( "C:/foo1/bar.txt", "C:/foo2/bar.txt" );


Message édité par Riot le 20-11-2007 à 15:10:10

---------------
Be the one with the flames.
mood
Publicité
Posté le 20-11-2007 à 12:17:43  profilanswer
 

n°1645803
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 20-11-2007 à 14:07:30  profilanswer
 

t'es sous windows ? si c'est le cas, alors c'est C:\foo1\bar.txt et C:\foo2 qu'il faut écrire :o

n°1645823
IrmatDen
Posté le 20-11-2007 à 14:25:58  profilanswer
 

Salut,
 
Pour les codes d'erreur, cf msdn:

Citation :

3 ERROR_PATH_NOT_FOUND


 
Le fichier source existe bien? Le répertoire destination existe bien aussi? (il n'est pas créé automatiquement)
En gros, regarde pourquoi l'exception est générée:

Citation :

Throws: basic_filesystem_error<Path> if  from_fp.empty() || to_fp.empty() ||!exists(from_fp) || !is_regular(from_fp) || exists(to_fp)


 
Pour le séparateur, tu peux rester avec '/' qui est transformé automatiquement par boost.

n°1645830
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 20-11-2007 à 14:39:30  profilanswer
 

IrmatDen a écrit :


 
Pour le séparateur, tu peux rester avec '/' qui est transformé automatiquement par boost.


ah bon [:petrus dei]
j'ai déjà eu des soucis avec des '/' à la place de '\' sous Win, moi ! mais c'était avec une ancienne version de boost, ça a ptet été corrigé depuis.
sinon, son souci peut pas venir aussi du fait qu'il n'échappe pas les '/' ?

n°1645837
Riot
Buy me a riot
Posté le 20-11-2007 à 14:46:49  profilanswer
 

Boost fait ça automatiquement maintenant.

 

Pour être sûr, j'ai fait comme ça :

 
Code :
  1. fs::path p1 = fs::path("c:/" ) / fs::path("foo1" ) / fs::path("bar.txt" );
  2. fs::path p2 = fs::path("c:/" ) / fs::path("foo2" );
  3. try{
  4. fs::copy_file( p1, p2 );
  5. }
  6. catch( filesystem_error& e )
  7. {
  8. std::cerr << e.what() << ':' << e.system_error() << std::endl;
  9. }
 


Et oui, comme je l'ai dit, les répertoires foo1, foo2 et le fichier bar.txt existent bien.


Message édité par Riot le 20-11-2007 à 14:50:55

---------------
Be the one with the flames.
n°1645845
Riot
Buy me a riot
Posté le 20-11-2007 à 14:54:40  profilanswer
 

Par contre là j'ai une erreur 5, ERROR_ACCESS_DENIED d'après la msdn [:petrus75]


---------------
Be the one with the flames.
n°1645851
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 20-11-2007 à 15:00:07  profilanswer
 

télécharge Filemon, et regarde les accés fichiers générés par ton soft. tu vas de suite voir le souci

n°1645863
Riot
Buy me a riot
Posté le 20-11-2007 à 15:08:04  profilanswer
 

Ah oué merci beaucoup.
 
Grâce à ça j'ai découvert qu'il fallait préciser le nom du fichier de destination, et pas seulement son répertoire [:petrus75]


---------------
Be the one with the flames.
n°1645901
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 20-11-2007 à 15:33:19  profilanswer
 

[:god]


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

  [résolu] [boost] problèmes avec copy_file

 

Sujets relatifs
[Résolu] Créer flux RSS en fonction d'une DB[resolu]images non alignées CSS
largeur des DIV sous firefox [ Resolu ][Résolu] Image : haut absolu ?
Type de paramètre dans une fonction [RESOLU][résolu] select avec données uniques
[RESOLU] pb Listbox + condition[RESOLU] [Delphi] Syntaxe de "uses"
[LaTeX] Environnement Tabbing qui fait des siennes [résolu][Résolu] [PHP] [Formulaire d'inscription]
Plus de sujets relatifs à : [résolu] [boost] problèmes avec copy_file


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