В .NET, как известно, для работы с изображениями используется GDI+.
Если инициализировать свойство изображения, к примеру так:
PictureBox.Image = Image.FromFile("Path"), то файл с изображением будет залочен до того момента, пока существует инициализируемый объект. То есть будет выброшено исключение IOException при попытке удаления файла.
Решение можно найти тут:
http://support.microsoft.com/kb/814675.
В двух словах:
Читайте в Bitmap (MyBitmap = Image.FromFile), инициализируйте нужный объект, а затем вызывайте MyBitmap.Dispose.