private void ButtonCustomarinfoEditClick(object sender, System.Windows.RoutedEventArgs e)
{
ByteToImage(fileName,bytesOfImage,fileSize);
}
private ImageSource ByteToImage(string fileName, byte[] bytesOfImage, int fileSize)
{
FileStream imageFilestream = new FileStream(fileName, FileMode.Create, FileAccess.Write);
imageFilestream.Write(bytesOfImage, 0, fileSize);
imageFilestream.Flush();
imageFilestream.Close();
imageFilestream.Dispose();
BitmapImage myBitmapImage = new BitmapImage();
myBitmapImage.BeginInit();
myBitmapImage.UriSource = new Uri(fileName);
myBitmapImage.DecodePixelWidth = 200;
myBitmapImage.EndInit();
return myBitmapImage;
}
当我第一次点击ButtonCustomarinfoEdit然后它工作正常。但是,当我第二次点击时,它会抛出此异常
抓住:“进程无法访问文件'C:\ 20.jpg',因为它正被另一个进程使用。” (System.IO.IOException)
异常消息=“进程无法访问文件'C:\ 20.jpg',因为它正被另一个进程使用。”,Exception Type =“System.IO.IOException”
答案 0 :(得分:3)
您的BitmapImage对象会锁定文件。
只是一个小小的观察,请使用这样的using
statement:
using(FileStream imageFilestream = new FileStream(fileName, FileMode.Create, FileAccess.Write)) {
imageFilestream.Write(bytesOfImage, 0, fileSize);
}
否则您可能会遇到文件将继续使用的情况(如果在调用Close()方法之前发生异常。