在使用从FTP读取图像结束时“抛出异常”

时间:2014-02-01 07:39:23

标签: c# image ftp

我有一张Image的地址列表。使用此代码,我可以正确读取图像:

List<Image> ImageList = new List<Image>();
List<string> fileNameList = new List<string>();

foreach (var fileName in fileNameList)
            {
                var request = WebRequest.Create(fileName);
                request.Method = WebRequestMethods.Ftp.DownloadFile;

                request.Credentials = new NetworkCredential(Username, Password);
                using (var response = (FtpWebResponse)request.GetResponse())
                using (var stream = response.GetResponseStream())
                using (var img = Image.FromStream(stream))
                {
                    img.Save(@"D:\ax.jpg", ImageFormat.Jpeg);
                    ImageList.Add(img);
                }
            }

在此ImageList.Add(img);imgImageList中的项都为真之前。但是当它从最后一个using出来时,所有ImageList的属性都变为“引发类型'System.ArgumentException'的异常

例如Height的属性更改为:

'((new System.Collections.Generic.Mscorlib_CollectionDebugView<System.Drawing.Image>(ImageList)).Items[0]).Height' threw an exception of type 'System.ArgumentException'

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:1)

不要对图像使用using语句,它会在离开块时配置图像

using (var stream = response.GetResponseStream())
{
    var img = Image.FromStream(stream);
    img.Save(@"D:\ax.jpg", ImageFormat.Jpeg);
    ImageList.Add(img);
}