进程无法访问另一个进程正在使用的文件

本文关键字:进程 文件 访问 另一个 | 更新日期: 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并手动管理文件关闭。