我已经尝试了很多不同的方法来做到这一点,当我在再次保存之前尝试将其删除时,它仍然告诉我该文件正在使用中。
if (Clipboard.GetDataObject().GetData(DataFormats.Bitmap) != null)
{
if (File.Exists(filename)) { File.Delete(filename); }
using (FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.ReadWrite))
{
ImageConverter converter = new ImageConverter();
byte[] bytes = (byte[])converter.ConvertTo(Clipboard.GetDataObject().GetData(DataFormats.Bitmap), typeof(byte[]));
fs.Write(bytes, 0, bytes.Length);
fs.Close();
fs.Dispose();
}
}
如您所见,我将所有内容都放在“使用”块中。我还“关闭”了该文件,甚至还尝试显式调用“处置”。但是当我再次运行代码时,它仍然告诉我文件正在使用中。我该怎么做才能覆盖文件?
我也试过这样:
using (Bitmap bmp = new Bitmap((Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap)))
{
if (bmp != null)
{
if (File.Exists(filename)) { File.Delete(filename); }
using (MemoryStream memory = new MemoryStream())
{
using (FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.ReadWrite))
{
bmp.Save(memory, ImageFormat.Bmp);
byte[] bytes = memory.ToArray();
fs.Write(bytes, 0, bytes.Length);
fs.Close();
}
memory.Dispose();
}
bmp.Dispose();
break;
}
}
它仍然给我同样的错误。