C# 该进程无法访问该文件,因为其他进程正在使用该文件
多年来,我们一直在与这个错误作斗争。下面是问题代码C# 该进程无法访问该文件,因为其他进程正在使用该文件,c#,C#,多年来,我们一直在与这个错误作斗争。下面是问题代码 for ( Int32 Counter = 0; Counter < x.Rows.Count; Counter++) { using (FileStream bitmapFile = new FileStream(@"c:/someOlddir/file1.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
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);
}
for(Int32计数器=0;计数器
我在这段代码中遇到的问题是,对于集合中的前30或40幅图像,它可以正常工作,但当我达到50或60幅图像时,我会收到一个错误,表示我试图设置日期时间的文件正被另一个进程使用。但是这个错误只有在我迭代一个大的集合时才会发生,在迭代的第40或第50个位置,前30个图像工作正常,然后突然一个文件被进程锁定了。我已经掌握了使用语句的一切,但是这个错误仍然存在
我是否必须知道如何等到文件保存后再访问它,但情况不应该是这样,因为我先保存文件,然后再尝试访问它。代码有什么问题吗?我现在找不到这个问题,但我记得在我以前的一个项目中,在这种情况下使用
和是不起作用的
因此,请停止所有使用并手动管理文件关闭。我怀疑打开文件的不是您的代码。可能是其他程序刚刚看到了你的新文件并想查看它。防病毒软件喜欢这样做。请尝试修改,并查看问题是否仍然存在。已按照您的建议执行。。。。。保存后,我删除了“uploadedbitmapResized”上的using语句,并显式地调用了“uploadedbitmapResized.Dispose()”,这就成功了。但使用语句不应该解决这个问题吗?无论如何thx:)