Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 26.05.2012
Сообщений: 237

Редактирование загруженного файла в Image: ошибка - файл занят другим процессом

15.08.2014, 08:55. Показов 1407. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Загружаю все файлы jpg из выбранной папки для отображения в Image
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Dim LB as New ListBox()
Dim dlg as New OpenFileDialog()
Private Sub OpenFolder_Click(sender As Object, e As RoutedEventArgs) Handles OpenFolder.Click
        Try
            If dlg.ShowDialog() = Windows.Forms.DialogResult.OK Then
                LB.Items.Clear()
                LB.Items.AddRange(IO.Directory.GetFiles(IO.Path.GetDirectoryName(dlg.FileName), "*.jpg"))
                LB.SelectedItem = dlg.FileName
                CreateBitmap()
            End If
        Catch ex As Exception
        End Try
    End Sub
' загрузка картинки в Image1
Private Function CreateBitmap()
        Dim bitmap As New BitmapImage()
        bitmap.BeginInit()
        bitmap.UriSource = New Uri(LB.SelectedItem)
        bitmap.EndInit()
        Image1.Source = bitmap
        Return bitmap
    End Function
 
        End If
удаление пытаюсь реализовать следующим способом
VB.NET
1
2
3
4
5
6
 Private Sub DelButton_Click(sender As Object, e As RoutedEventArgs) Handles DelButton.Click
     Dim DelFile as String = LB.SelectedItem
     LB.SelectedIndex += 1
     CreateBitmap()
     IO.File.Delete(DelFile)
 End Sub
Но удаление не получается реализовать. Выдает ошибку. Скорее всего таже ситуация будет с сохранением измененного файла.
Как можно реализовать удаление и сохранение
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.08.2014, 08:55
Ответы с готовыми решениями:

Ошибка открытия файла, так как он занят другим процессом
Возникла проблема: при нажатии на кнопку прописал код, чтобы открывался файл из определенной директории. Private Sub Button4_Click(ByVal...

Как удалить файл, который занят другим процессом
Не могу удалить текстовой файл. Команда выглядит вот так My.Computer.FileSystem.DeleteFile(filepath & "\" &...

Как избежать ошибки файл занят другим процессом
Допустим, есть программа, которая открывает файл. На форме есть поле для отображения файла, текстовое поле и кнопа. В текстовом поле...

7
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
15.08.2014, 09:09
Это же WPF. Могу только предположить как это будет для винформ.

Есть несколько вариантов, навскидку парочка

VB.NET
1
2
3
4
        Using BM As New Bitmap("C:\1.jpg")
            Dim TMP As New Bitmap(BM)
            PictureBox1.BackgroundImage = TMP
        End Using
и
VB.NET
1
2
3
        Using fs As New IO.FileStream("C:\1.jpg", IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.Delete)
            PictureBox1.Image = Image.FromStream(fs)
        End Using
Вряд ли подойдут, у меня проверить не на чем
0
0 / 0 / 0
Регистрация: 26.05.2012
Сообщений: 237
15.08.2014, 09:17  [ТС]
не знаю на сколько это wpf, но коды с других примеров, и даже winforms. WPF используется для более расширенного визуального оформления стандартных winforms. На сколько знаю и там и там коды должны работать.
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
15.08.2014, 09:20
Да, это для винформ. Если они не подходят - ждите знатоков WPF
0
0 / 0 / 0
Регистрация: 26.05.2012
Сообщений: 237
15.08.2014, 09:28  [ТС]
хорошо. Первый код как я понял для загрузки картинки в контейнер, а второй для работы с самим файлом. И как он работает. Что то не пойму
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
15.08.2014, 09:32
mega2411, второй код - просто считывание данных файла в поток и так как пикчербокс умеет брать картинку из потока, это там прокатывает. Файл после этого ничем не занят и свободен для удаления, редактирования или замены
0
0 / 0 / 0
Регистрация: 26.05.2012
Сообщений: 237
15.08.2014, 10:41  [ТС]
то есть, в какое место представленного мною выше кода можно вставить представленный Вами код
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
15.08.2014, 11:13
mega2411, там в коде у Вас есть непонятная вещь.
Есть функция CreateBitmap
С нее, как с функции толку нет. Ведь функция отличается от процедуры тем, что что-то возвращает.
Она у Вас таки возвращает, но непонятно куда, ибо в процедуре OpenFolder_Click эта функция просто вызывается, как простая процедура, и ничего никому не присваивает.

По идее, этот код можно поместить в эту самую CreateBitmap, но тогда уж сделать ее процедурой (то бишь Sub, а не Function)

Мне не нравится эта морока с присвоением картинки компоненту Image, как-то замучено там все, и я не знаю, как в Image там присвоить данные из потока.

У меня нет WPF здесь, на работе, поэтому что-то вставить и проверить я не могу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.08.2014, 11:13
Помогаю со студенческими работами здесь

Процесс не может получить доступ к файлу, т.к файл занят другим процессом
Процесс не может получить доступ к файлу, т.к файл занят другим процессом Как закрыть открытый файл по указанному пути?...

Файл занят другим процессом. Можно ли узнать, когда он станет доступен?
Доброго времени суток! В моем приложении нужно удалить файл (приложением созданный же), но иногда вылетает ошибка: файл занят другим...

Программно узнать занят ли файл каким либо процессом
Как программно узнать занят ли файл каким либо процессом? И как зациклить программу, чтобы она проверяла занятость файла процессом, и как...

После прикрепления к письму текстовый файл оказывается занят каким-то процессом
Всем привет! Помогите, пожалуйста, решить проблему. Делаю следующее. По нажатию кнопки программно создаётся txt-файл, в него записываются...

Заблокирован ли файл другим процессом?
Какая функция помогает узнать, заблокирован ли файл другим процессом?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru