Suppression/déplacement d'images impossible

Résolu
Messages postés
124
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
11 mai 2009
-
Messages postés
124
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
11 mai 2009
-
Bonjour à vous.


Voila mon problème:


Une application graphique en swing affiche la liste des images
contenues dans un dossier, en cliquant sur l'image celle-ci s'affiche
dans un composant, et si l'utilisateur veut supprimer l'image, il
clique sur un bouton dédié et l'image est sensée être supprimée.


Le problème, c'est que les méthodes delete() et renameTo( "blabla" ) de
la File pointant sur l'image en question me renvoient toutes les 2 false (alors que la méthode canWrite() me renvoie elle true).


Le plus déroutant dans tout ça c'est que quelquefois,  la suppression (ou déplacement) fonctionne.


J'ai les droits de modification et compagnie sur les fichier/dossiers et je ne vois pas ce qui cause ce problème.


Peut être l'objet de classe ParameterBlock que j'utilise pour créer mon image JAI verrouille ces fichiers ?


Peut être est ce du à la création de l'image JAI via la méthode
JAI.create("filesystem", parameterblock) qui bloquerai le fichier ?


Merci, de votre future aide,

A+

6 réponses

Messages postés
124
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
11 mai 2009
16
J'ai (enfin) résolu mon problème.

Alors pour ceux qui le rencontreraients, voici la solution:

<li>Je créais mes objets JAI, les affichais.</li><li>Lorsque l'utilisateur voulait supprimer un fichier, je mettais les objets JAI à null, j'enlevais l'affichage etc...</li><li>Le problème venait du fait que le garbage collector semblait ne pas effacer assez tôt les objets JAI de la mémoire (quel flemmard !). Un appel à la méthode : System.gc(); m'a permis de tout résoudre. Celle-ci permet au développeur d'appeler manuellement le garbage collector.</li>Un problème auquel il fallait penser, mais après tous les tests que j'ai fait, il ne restait plus 36 possibilités.


Merci pour vos tentatives d'aide,

A+

         
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Attention, si ton fichier est en cours d'utilisation, c'est normal qu'il ne veuille pas le supprimer ou le déplacer !

Donc assure toi que tout les pointeurs vers le fichier sont bien fermés !
Messages postés
124
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
11 mai 2009
16
C'est justement mon problème: qu'est ce qui fait office de pointeur sur mon fichier ?
<li>
Seulement les objets de type File ?</li><li>
Les objets de type ParamaterBlock ?</li><li>
Les objets de type PlanarImage JAI ?</li><li>
Le composant graphique qui affiche l'image?</li>

Il me semble que j'ai supprimé tous les pointeurs et même plus par précaution.


"Attention, si ton fichier est en cours d'utilisation, c'est normal
qu'il ne veuille pas le supprimer ou le déplacer !"

Oui, d'accord, mais si le fichier était en cours d'utilisation, canWrite() renverai-elle true ?!


Toujours-est-il, merci de ton aide!
Messages postés
5367
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
27 janvier 2022
111
Salut,

nomalement si un fichier est locké canwrite ne te renvoit pas true

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
124
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
11 mai 2009
16
C'est bien ce que je pensais, donc à priori le fichier n'est pas locké.

Je ne voit donc pas d'où viens l'impossibilité de suppression/déplacement...

Une idée?
Messages postés
5367
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
27 janvier 2022
111
Salut,


D'apres la doc de JAI la methode JAI.create(...) est bloquante
maintenant faut voire ce qu'ils appels bloquante puis aussi si ils
gardent ou non un stream ouvert sur ton image....

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA