coulis
Messages postés121Date d'inscriptionlundi 20 octobre 2003StatutMembreDernière intervention24 juin 2010
-
9 mars 2007 à 15:47
coulis
Messages postés121Date d'inscriptionlundi 20 octobre 2003StatutMembreDernière intervention24 juin 2010
-
21 mars 2007 à 16:04
Bonjour, à tous
J'ai l'erreur suivante lorsque je souhaite effacer des fichiers "jpg" sur un dossier ayant toutes les autorisations.
"Le processus ne peut pas accéder au fichier xxxxxxxx car il est en cours d'utilisation par un autre processus."
Remarque : avant d'éffacer les fichiers j'ai crée des images redimensionnées et sauvegarder ous un autre nom.
Voici mon code :
Private
Sub CreatImg(
ByRef RefInt
As
String,
ByRef RefAnno
As
String,
ByRef image
As
Integer,
ByRef imageB
As
Integer,
ByRef Lmage
As
Integer)
' On va fournir une image avec une hauteur et Largeur X et Y, et fixer la largeur de la miniature (en pixel),
'RefInt 'nom de l'image initiale
'RefAnno 'Référence LM de l'annonce VO
'Lmage 'On fixe la largeur de l'image
'image 'nombre de photo pour ce VO
'imageB 'nombre de photo encours pour ce VO
Dim MonRepertoirePhysique
As
String = Application("CheminAppli") & "\images"
'chemin de stockage des photos
Dim di
As DirectoryInfo =
New DirectoryInfo(MonRepertoirePhysique)
Dim fi
As FileInfo()
fi = di.GetFiles(RefInt & "_*" & "_" & FormatImg & ".jpg")
' images planetVO
If fi.Length > 0
Then
Dim fi2
As FileInfo
Dim TabImage(image)
As
String
'Création d'un tableau pour inscrire le nom des images éxistantes
Dim i
As
Integer = imageB + 1
For
Each fi2
In fi
'Récupération des images du VO
TabImage(i) = fi2.Name
'Inscription dans le tableau
i += 1
Next
Dim HauteurImage
As
Integer
'Pour ernregistrer la hauteur calculée de l'image
For i = imageB + 1
To image
'Création des miniatures
Dim bmp
As
New System.Drawing.Bitmap(MonRepertoirePhysique & TabImage(i))
'
la hauteur de la miniature se calcule alors en proportion
HauteurImage = (bmp.Size.Height * Lmage / bmp.Size.Width)
'la Hauteur est calculée
bmp = bmp.GetThumbnailImage(Lmage, HauteurImage,
Nothing, IntPtr.Zero)
bmp.Save(MonRepertoirePhysique & RefAnno & "-" & i & ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
' Sauvegarde de l'image
bmp.Dispose()
Next
End
If
End
Sub
'Suppression des images originales importées
Private
Sub SupImgImport(
ByVal RefInt
As
String)
Dim di
As
New DirectoryInfo(Application("CheminAppli") & "\images")
Dim fi
As FileInfo()fi = di.GetFiles(RefInt & "_*" & "_" & FormatImg & ".jpg")
' image planetVO
'If fi.Length 0 Then fi di.GetFiles("*_" & RefInt & "_*.jpg") ' image dcs
Dim fi2
As FileInfo
If
Not ((fi2.Attributes
And FileAttributes.ReadOnly) = 0)
Thenfi2.Attributes = fi2.Attributes
And
Not FileAttributes.ReadOnly
End
If
For
Each fi2
In fi ' l'erreur se produit ici ou ...
fi2.Delete() ' l'erreur se produit ici.
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 9 mars 2007 à 18:58
Bonjour,
Dim bmp AsNew System.Drawing.Bitmap(MonRepertoirePhysique & TabImage(i))
'
la hauteur de la miniature se calcule alors en proportion
HauteurImage = (bmp.Size.Height * Lmage / bmp.Size.Width)
'la Hauteur est calculée
bmp = bmp.GetThumbnailImage(Lmage, HauteurImage, Nothing, IntPtr.Zero)
bmp.Save(MonRepertoirePhysique & RefAnno & "-" & i & ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
' Sauvegarde de l'image
bmp.Dispose()
l'erreur est là ! Ici tu manipules 2 objets Bitmap mais t'en dispose qu'un seul ! Donc créer une nouvelle variable dee type Bitmap et récuperer le Thumbmail dans ce niveau bitmap comme ca tu pourras faire un dispose des deux !