Процесс не может получить доступ к файлу xxxxxx, поскольку он используется другим процессом
Я пишу приложение WinForm, используя VS2010 & VS2012 с. Net4.
В приложении я загружаю отдельные изображения в pictureboxes, а затем удаляю те изображения, которые пользователь не хочет сохранять.
Каждый раз, когда я пытаюсь удалить эти "нежелательные" изображения, я получаю приведенное выше сообщение об ошибке:
"Процесс не может получить доступ к файлу xxxxxx, потому что он используется другим процессом"
Следующее используется для загрузки изображения в динамически создаваемый picturebox вместе с кодом для удаления нежелательных изображений.
Вариант 1:
загруженное изображение:
picBox.Image = Image.FromFile(imgInfo.FullName).GetThumbnailImage(128, 128, Nothing, Nothing)
Удалить Изображение:
For Each imgFile As String In Directory.GetFiles(imgSharedFolder) File.Delete(imgFile) Next imgFile
Вариант 2:
После загрузки файл изображения в элемент управления PictureBox будет "блокировка" файл изображения я пробовал следующие, прочитав файл изображения в FileStream и затем закройте FileStream после загрузки изображения в элемент управления PictureBox
Загрузка:
fs = New System.IO.FileStream(imgInfo.FullName, IO.FileMode.Open, IO.FileAccess.Read) picBox.Image = System.Drawing.Image.FromStream(fs).GetThumbnailImage(128, 128, Nothing, Nothing) fs.Close()
Удалить:
Dim picList As String() = Directory.GetFiles(imgSharedFolder, "*.jpg") For Each f As String In picList File.Delete(f) Next f
Я получаю то же самое сообщение об ошибке.
Вариант 3:
После еще нескольких поисков, чтения и попыток я наткнулся на это предложение создать объект изображения, а затем избавиться от объекта изображения, как только изображение будет загружено в picturebox:
Загрузка:
Dim newImage As Image newImage = Image.FromFile(imgInfo.FullName).GetThumbnailImage(128, 128, Nothing, Nothing) picBox.Image = newImage
К сожалению, я только что получил то же самое сообщение об ошибке.
Есть ли какое-то другое возможное решение этой проблемы, что-то, что я, возможно, упустил из виду ?