Effacer un fichier du HD avec VB.NET

Résolu
felsfr Messages postés 25 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 13 décembre 2005 - 10 avril 2005 à 18:47
felsfr Messages postés 25 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 13 décembre 2005 - 12 avril 2005 à 01:21
Bonjour,
Débutant en VB.NET, j'ai un petit problème avec la gestion des fichiers.

Ayant chargé une image 'image.jpg' dans une picturebox, je souhaiterais l'effacer du disque dur. Après avoir vidé la picturebox par
'image1.image= nothing',
je tente de l'effacer du hd par la méthode fileinfo de la sorte :
Dim Fi as Fileinfo
Fi =New Fileinfo(fichier) ' fichier étant correctement formaté
Fi.Delete()

Et j'obtient le message suivant
"Le processus ne peut accéder au fichier "image.jpg", car il est en cours d'utilisation par un autre processus"

Cela fonctionne correctement si l'image n'a pas été chargée dans la picturebox, mais message d'erreur dans le cas contraire. Comment "Décharger" le fichier image.jpg afin qu'il ne soit plus utilisé par un processus quelconque afin de pouvoir l'effacer ?

Merci pour votre aide

3 réponses

felsfr Messages postés 25 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 13 décembre 2005
12 avril 2005 à 01:21
J'ai trouvé la solution après recherche sur des forums dans la langue de Shakespear. Je poste donc l'info pour en faire profiter ceux qui pourraient en avoir l'utilité :

'affichage de l'image dans la picturebox
''on charge l'image par un fromstream et on libere ensuite le filestream car sinon
'impossible d'effacer le fichier par la suite comme avec la méthode
'Image1.Image = System.Drawing.Image.FromFile(nom_du_fichier_image) qui elle
'verrouille le fichier chargé dans la picture box.

Dim mon_image As Image
Dim fs As New System.IO.FileStream(nom_du_fichier_image, IO.FileMode.Open)
mon_image = Image.FromStream(fs)
Image1.Image = mon_image 'on affiche l'image
fs.Close() 'on libere le stream

- - - -

Dim Fi As FileInfo
Fi = New FileInfo (nom_du_fichier_image)
Fi.Delete()
'on efface le fichier
3
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
10 avril 2005 à 19:17
Et avec image1.image= 0 ça ne marche pas non plus ?

Loup Gris
0
felsfr Messages postés 25 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 13 décembre 2005
10 avril 2005 à 19:56
Merci pour ta réponse,
mais le problème n'est par d'effacer la picturebox, 'image1.image= nothing' fonctionne très bien pour cela, mais impossible d'effacer le fichier du disque, il est toujours en utilisation par un processus.

Une autre idée ?
0
Rejoignez-nous