public Form1()
{
String _inputfile = @"C:\Input\cea.tif";
InitializeComponent();
pb_picturebox.SizeMode = PictureBoxSizeMode.StretchImage;
pb_picturebox.ClientSize = new Size(515, 515);
pb_picturebox.Image = null;
pb_picturebox.Image = Image.FromFile(_inputfile);
GeoTiffReader tiff = new GeoTiffReader(_inputfile); // <- IOException was...
IList<IGeometry> result = tiff.ReadToEnd();
tiff.Close();
}
我得到一个IOException是unhalted错误。 我该如何处理这个问题?它适用于不同的文件名。
此代码示例导致GeoTiffReader类中的异常:
// open the stream for reading
try
{
_baseStream = FileSystem.GetFileSystemForPath(_path).OpenFile(_path.AbsolutePath, FileMode.Open, FileAccess.Read); // open the file specified by path
}
catch (Exception ex)
{
throw new IOException("Exception occured during stream opening.", ex);
}
观察: 姓名:ex value:{“进程无法访问文件'C:\ Input \ cea.tif',因为它正由另一个进程使用。”}
答案 0 :(得分:1)
基于:https://stackoverflow.com/a/6576645/2655508
替换此行
pb_picturebox.Image = Image.FromFile(_inputfile);
这一行
using (FileStream stream = new FileStream(_inputfile, FileMode.Open, FileAccess.Read))
{
pb_picturebox.Image = Image.FromStream(stream);
}
通过使用using
keyword,一旦执行离开using
块并且文件不再被锁定,将立即处理流。