boost filesystem & fichiers en lecture seule

boost filesystem & fichiers en lecture seule - C++ - Programmation

Marsh Posté le 04-07-2008 à 07:27:30    

Bonjour,
 
   Dans un de mes programme, j'utilise unrardll pour extraire les fichiers rar. Or il s'avère que je me suis rendu compte que si dans une archive je dispose d'un fichier en lecture seule, lors de son extraction il restera en lecture seule. Le problème c'est que j'extrais ces fichiers dans un répertoire temporaire et que je souhaiterai les supprimer à la fin de l'exécution de mon application (ou à l'ouverture d'une nouvelle archive).  
   Pour la suppression des fichiers j'utilise boost::filesystem::remove(). Le problème c'est qu'il ne veut pas supprimer des fichiers en lecture seule (il me lance une exception...). Dans mes recherches j'ai trouvé un vieux thread de 2003 qui parlait de l'existence des fonctions :

Code :
  1. bool is_writeable( const path & );
  2. void set_writeable( const path &, bool value = true );


Mais elles ne semblent pas exister dans ma version actuelle de boost.
 
Je me demandais donc si vous aviez une idée de comment je pourrai régler mon problème. (sachant que je ne veux surtout pas faire d'appel au système pour faire un "rm -f " ou "del "... )
 
Merci :)

Reply

Marsh Posté le 04-07-2008 à 07:27:30   

Reply

Marsh Posté le 05-07-2008 à 09:13:58    

Bon, n'ayant pas trouvé de meilleure solution j'ai finalement dus m'orienter vers ce que je ne voulais pas : passer par des commandes systèmes.
Par contre j'ai toujours un petit soucis : en effet mon application est une application graphique (utilisant QT) et quand je lance une commande système il m'ouvre un terminal dos (qu'il ferme juste après...).
Mais je me demandais si il n'était pas possible d'empêcher l'ouverture de ce terminal ? J'ai essayé de rediriger la sortie de la commande vers NUL. Mais en toute logique c'est que la sortie de la commande qui est masquée, et donc le terminal s'ouvre et se ferme toujours...
 
Si vous avez une idée ? :)

Reply

Marsh Posté le 05-07-2008 à 16:08:35    

Si tu utilises déjà Qt, tu ne peux pas utiliser QFileInfo sur cette partie là?

Reply

Marsh Posté le 05-07-2008 à 18:15:19    

Ok, je vais regarder de ce côté là.  
C'est vrai que j'ai utilisé boost::filesystem plutôt par réflexe : je l'ai déjà utilisé dans pas mal d'occasion et donc ça m'était même pas venu à l'esprit de chercher ailleurs :D

Reply

Sujets relatifs:

Leave a Replay

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