cs_JuS
Messages postés121Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention20 mars 2009
-
14 août 2006 à 15:23
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 2012
-
27 avril 2007 à 06:48
Bonjour,
Voici mon problème. Je suis en train de développer une application qui va chercher des images pour les afficher. Jusque là tout va bien.
J'affiche ces images dans un objet PictureBox à l'aide de la commande Image.FromFile :
Dans cette application je peux supprimer ou déplacer ces images. J'utilise donc les commandes File.Delete et File.Move.
File.Move(@"C:\MonImage.jpg",@"C:\Save\MonImage.jpg");
ou
File.Delete(@"C:\MonImage.jpg");
Cependant lorsque le programme arrive à ces commandes il sort en erreur en me disant :
Le processus ne peut pas accéder au fichier 'C:\MonImage.jpg', car il est en cours d'utilisation par un autre processus.
A mon avis c'est parce que je suis en train de l'afficher que je ne peux pas la supprimer ou la déplacer ...
Il y aurait-il un autre moyen de faire à part créer des copies des images que j'affiche ?
Merci d'avance pour votre aide
-=[JuS]=-
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 14 août 2006 à 15:59
Salut,
Avec la méthode Clone le handle sur le fichier reste quand même ouvert il me semble.
Une solution est de recréer une image à partir de celle ouverte sur le disque et de fermer cette dernière.
Par exemple en utilisant une méthode de ce genre (à modifier suivant les remontés d'exceptions nécessaires notamment) :
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 14 août 2006 à 16:08
La réponse de Lutinore est bonne aussi, mais comme dans le cas présent on ne doit pas modifier l'image autant laisser le Framework se charger de la duplication :-)