2

多年来一直在努力解决这个错误。下面是代码是问题

        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 语句中拥有一切,但这个错误仍然存​​在。

我是否必须要等到文件保存后再访问它,但这不应该是这种情况,因为我是先保存文件然后再尝试访问它。代码有什么问题?

4

1 回答 1

1

我现在找不到这个,但我记得我以前的一个项目using在这种情况下使用不起作用。

因此,删除所有使用并手动管理文件关闭。

于 2013-08-26T09:20:04.663 回答