[vb.net]erreur IO

cs_bloodaxe Messages postés 17 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 25 juillet 2006 - 19 déc. 2004 à 19:37
cs_bloodaxe Messages postés 17 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 25 juillet 2006 - 30 janv. 2005 à 20:35
Salut tous, j'ai un soucis avec une image que je charge depuis un fichier:


Dim img As Image 'variable globale
Dim path_wallpaper as String

path_wallpaper ="c:/windows/fond.bmp

 'on charge l'image dans la picture box
PictureBox1.Image = img.FromFile(path_wallpaper)


jusque la aucun soucis.

Dans un autre événement, je dois écraser le fichier c:/windows/fond.bmp par une autre image. C'est la que j'ai un problème.


Try
           
            'on test si le fichier existe déja
            If Dir(Reper_save, vbHidden) <> "" Then
                'Si oui on le supprime
                Kill(Reper_save)
            End If

           

            img = img.FromFile(Path)
            img.Save(Reper_save, ImageFormat.Bmp)
           
        Catch ex As Exception

            'Si une exception apparait on affiche un message d'erreur
            MsgBox(ex.ToString, MsgBoxStyle.Critical, "Erreur Critique")

        End Try


A la fonction kill pour effacer le fichier, ca me sort une exeption me disant que le fichier est déjà en cours d'utilisation et qu'il est impossible de l'effacer.

J'ai essayer de faire un img.dispose() avant le kill j'ai eu droit a une autre exception me disant que la référence d'objet n'est pas définie a une instance d'objet.

Que faire svp?

4 réponses

cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
19 déc. 2004 à 20:21
labout

Si le fichier est affiché dans le picturebox c'est normal,
il faut avant vider Picturebox1
PictureBox1.Image=nothing
puis le recharger.
@+
0
cs_bloodaxe Messages postés 17 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 25 juillet 2006
19 déc. 2004 à 20:55
Ca marche pas, j'ai essayer de le placer dans differente méthodes rien a faire.
Soit la premiere image s'affiche pas et je peut écraser le premier fichier image. Soit j'ai la premier image qui s'affiche dans la form et quand je veux enregistrer la seconde j'ai la même exception.
0
alicvb Messages postés 134 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 juin 2007 1
30 janv. 2005 à 20:30
Perso, je ne charge pas les images de cette façon (qui me semble d'ailleurs étrange...)

à ta place je ferai un truc comme ça :



PictureBox1.image = new bitmap(path_Wallpaper)



Sauf si tu as besoin de l'image ailleurs, auquel cas :

img = new bitmap(Path_Wallpaper)

PictureBox1.image = img



Si tu as encore des problèmes pour supprimer le fichier (ce qui est
possible, je n'ai pas testé), tu peux toujours rajouter un clonage :

new bitmap(Path_Wallpaper).clone





Est-ce que ça marche ?



AlicVB
0
cs_bloodaxe Messages postés 17 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 25 juillet 2006
30 janv. 2005 à 20:35
salut, ben en faite ce que je fesais pour ne plus avoir ce probleme, je fesait un
dispose sur la picuturebox:


'On libere les ressources utilis&#233; par l'image pr&#233;c&#233;dente


PictureBox1.Image.Dispose()



'On affiche aucune image


PictureBox1.Image = 
Nothing


et ca marchait nikel
0
Rejoignez-nous