Libérer une ressource pour agir dessus [Résolu]

Messages postés
9
Date d'inscription
samedi 11 octobre 2008
Dernière intervention
28 avril 2013
- - Dernière réponse : cs_Le Pivert
Messages postés
5599
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
10 décembre 2018
- 21 mars 2011 à 15:38
Bonjour
je suis un débutant en dotnet et j'utilise VS.NET 2003
J'écris une application qui permet d'accéder à un serveur de fichier image afin de les visualiser mais aussi avec la possibilité de supprimer celles qu'on veut.
Pour se faire je mappe un lecteur réseau pour accéder au répertoire partagé du serveur distant.
Mais voila lorsque je visualise un fichier et que je choisi de le supprimer, la commande file.delete me retourne un résultat genre "Cette ressource est utilisé par un autre programme."
Le message est le pareil même si je donne les valeurs nothing à mon picturebox.image

Quelqu'un voudrait-il bien m'aider (comment libérer le fichier après visualisation afin de pouvoir appliquer la commande file.delete)

Tks
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
3
Merci
Salut,
C'est dommage qu'on ait pas le bout de code concernant le chargement de l'image dans le picturebox.
Voici une méthode qui permet de fermer correctement un flux une fois l'image chargée dans le picturebox :
        Dim fs As New IO.FileStream("image.jpg", IO.FileMode.Open)
        PictureBox1.Image = Image.FromStream(fs)
        fs.Close()

Bonne nuit.

Merci Utilisateur anonyme 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
5599
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
10 décembre 2018
3
Merci
Bonjour,
J'ai été confronté à ce problème. Si la solution de banana32 ne fonctionne pas, tu as cette solution que j'ai utilisé. Charger une autre image que tu auras mis dans Resources, cela libèrera la 1ère image. Cela donne:

PictureBox1.Image = Nothing
PictureBox1.Image = My.Resources.monimage        
System.Threading.Thread.Sleep(1000) 'on marque une pause de 1 seconde


Je pense qu'avec ceci cela devrait fonctionner.

Le Pivert

Merci cs_Le Pivert 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de cs_Le Pivert
Messages postés
9
Date d'inscription
samedi 11 octobre 2008
Dernière intervention
28 avril 2013
3
Merci
Bonjour à tous
je viens d'implémenter la solution de banana32 qui a marché à merveille (merci chef).
J'ai voulu aussi tester ta proposition Le Pivert, voici l'adaptation du code :
Dim sr As String = Application.ExecutablePath.ToString.Replace("monappli.exe", "0_0.jpg")
picBox_old.Image = Nothing
picBox_old.Image = New System.Drawing.Bitmap(sr)
System.Threading.Thread.Sleep(1000)
File.delete(file2delete) 

sr contenant l'adresse d'une image vide qui remplacera celle qu'on supprime, et file2delete l'adresse de l'image à supprimer.
mais sur le file.delete(file2delete) j'ai toujours le message de "Ressource en cours d'utilisation par un autre processus"
entre autre j'ai augmenté le temps de pause à 2s mais rien.
Peut-être que je m'y prend mal peux tu m'éclairer ? (une autre corde à l'arc est toujours bien venue)
Tks

----L'énergie coule où va la penséé -------

Merci ezechieladogli 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de ezechieladogli
Messages postés
5599
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
10 décembre 2018
3
Merci
Non, je n'ai rien à ajouter, si la solution de banana32 marche, c'est tant mieux. C'était au cas, car j'ai eu ce problème et j'ai galéré, j'avais 4 images temp à supprimer et cela a fonctionné pour moi.
Bonne programmation

Merci cs_Le Pivert 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de cs_Le Pivert

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.