当另一个进程使用该进程时,该进程无法访问该文件

时间:2013-08-26 09:04:26

标签: 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))
            {
                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时我得到一个错误,说我试图设置日期的文件-time to被另一个进程使用。但是这个错误只发生在我遍历大型集合并且在迭代中的第40或第50个位置时,这怎么可能是前30个图像工作得很好然后突然一个文件现在被一个进程锁定。我有使用语句的所有内容,但此错误仍然存​​在。

我是否需要在访问文件之前等待文件的保存,但这不应该是这种情况,因为我首先保存文件然后尝试访问它。代码有什么问题?

1 个答案:

答案 0 :(得分:1)

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

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