进程无法访问另一个进程正在使用的文件
本文关键字:进程 文件 访问 另一个 | 更新日期: 2023-09-27 18:28:58
多年来一直在与这个错误作斗争。下面的代码是问题
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张时,我会收到一个错误,说我试图设置日期时间的文件正被另一个进程使用。但这个错误只发生在我迭代一个大集合时,并且在迭代的第40或第50个位置,这怎么可能是前30个图像工作得很好,然后突然一个文件被一个进程锁定了。我有使用语句的一切,但这个错误仍然存在。
我必须知道如何等到文件保存后再访问它吗?但事实并非如此,因为我先保存文件,然后再尝试访问它。代码出了什么问题?
我现在找不到这个,但我记得在以前的一个项目中,在这种情况下使用using
是不起作用的。
因此,删除所有using并手动管理文件关闭。