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:)