多年来一直在努力解决这个错误。以下是代码问题
for ( Int32 Counter = 0; Counter < x.Rows.Count; Counter++)
{
using (FileStream bitmapFile = new FileStream(@"c:/someOlddir/file1.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
using (Bitmap uploadedbitmap = new Bitmap(bitmapFile))
{
using (System.Drawing.Image uploadedbitmapResized = ExtensionHelpers.Resize(uploadedbitmap, 800, 600, RotateFlipType.RotateNoneFlipNone))
{
uploadedbitmapResized.Save(@"c:/someNewdir/file1.txt",System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
}
/*errror occurss on this line */
File.SetCreationTime(@"c:/someNewdir/file1.txt",someDateTimeVariable);
}
我对这段代码的问题是它对于集合中的前30或40个图像效果很好但是当我达到50或60时我得到一个错误,说我试图设置日期的文件-time to被另一个进程使用。但是这个错误只发生在我遍历大型集合并且在迭代中的第40或第50个位置时,这怎么可能是前30个图像工作得很好然后突然一个文件现在被一个进程锁定。我有使用语句的所有内容,但此错误仍然存在。
我是否需要在访问文件之前等待文件的保存,但这不应该是这种情况,因为我首先保存文件然后尝试访问它。代码有什么问题?
答案 0 :(得分:1)
我现在找不到这个,但我记得以前的一个项目中,在这种情况下使用using
不起作用。
因此,删除所有使用并手动管理文件关闭。