Fermer une image après l'avoir charger avec System.Drawing.Bitmap.FromFile
cs_lionel4
Messages postés129Date d'inscriptionsamedi 29 novembre 2003StatutMembreDernière intervention26 septembre 2008
-
25 janv. 2006 à 18:06
Utilisateur anonyme -
25 janv. 2006 à 18:29
Salut à tous,
Je suis confronté à un problème qui doit être tout bête mais je n'ai pas trouver comment faire.
Basiquement, j'ai beaucoup d'images dans un seul dossier. Je les charge une à une dans une ImageList pour les réutiliser après dans une ListView. Plus tard dans l'execution du programme, je fais des opérations avec les fichiers, dont un déplacement et là, impossible d'agir car le fichier est en cours d'utilisation par un programme (j'imagine le mien).
Voici le code avec lequel je charge les images, j'imagine qu'il doit y avoir une commande à ajouter pour fermer le fichier après l'avoir ouvert.
'Pour chaque fichier, on charge l'image dans la liste
For
Each FF
In IO.Directory.GetFiles(Path & "\planeten")
Image = System.Drawing.Bitmap.FromFile(FF)
MF.ImageList1.Images.Add(Image)
MF.PlaneteList.Items.Add(FF.Substring(FF.LastIndexOf("") + 1), Index)
'Evite de tout faire freezer
Application.DoEvents()
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 25 janv. 2006 à 18:22
Salut,
Peut-être que faire un "Image = Nothing" après le "Next FF" suffirait ?
si ton objet FF n'est pas détruit en fin de boucle, il "pointe" toujours vers la dernière image trouvé par le "For Each" et donc bloque le fichier.
Le fait de lui affecté la valeur Nothing permettra peut-être de libérer le fichier.
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 25 janv. 2006 à 18:25
Ce que je t'ai proposé doit être bon car un coup d'oeil dans la MSDN pour la méthode FromFile() indique que ...
"Le fichier reste verrouillé tant que l'objet Image n'a pas été supprimé."