Première erreur:
if (File.Exists())
Le système de fichiers est volatile, et donc l'accès à votre dossier peut changer entre la ligne avec votre état et si la ligne suivante. Non seulement cela, mais File.Exists() peut renvoyer la valeur true, mais votre FileStream peut quand même générer une exception si vous ne disposez pas d'autorisations de sécurité sur le fichier ou s'il est déjà verrouillé. À la place, la façon correcte de gérer cela est avec un bloc try/catch. Consacrez plutôt votre temps de développement au gestionnaire d'exceptions, car vous devez quand même écrire ce code.
Deuxième erreur:
fs.Close();
Cette ligne doit être à l'intérieur d'un bloc finally, ou si vous avez la possibilité de laisser des poignées fichier ouvert traîner. Je recommande normalement un bloc using
pour assurer ce type de ressource bien disposé, mais puisque vous devez déjà le try/catch, vous pouvez utiliser le code comme ceci:
Image img = null;
FileStream fs = null;
try
{
fs = new FileStream(photoURI, FileMode.Open, FileAccess.Read);
img = Image.FromStream(fs);
}
finally
{
fs.Close();
}
Peut-être que l'image est trop grande? Qu'avez-vous essayé de charger? – schnaader
une image, son seul 156 Ko – xscape
Ouvrez-vous d'autres images? Quel format d'image? – JoshD