Проблема удалением изображения используется элемент управления PictureBox
<pre> Directory.Delete(Application.StartupPath & "\test\ax1.jpg", True)
Что я уже пробовал:
Directory.Delete(Application.StartupPath & "\test\ax1.jpg", True)
<pre> Directory.Delete(Application.StartupPath & "\test\ax1.jpg", True)
Directory.Delete(Application.StartupPath & "\test\ax1.jpg", True)
Встраивайте свой код в обработчик try catch, ловите исключения и сообщайте об ошибках, используя текст сообщения execption:
Try Directory.Delete(Application.StartupPath & "\test\ax1.jpg", True) Catch e As Exception MessageBox.Show(e.ToString) End TryВ вашем случае это может быть ошибка отказа в доступе, когда ваше приложение находится в системной папке, например программный файл (учетные записи пользователей не имеют прав на запись и удаление в таких папках), ошибка "файл не найден" или блокировка файла. Но только сообщение об ошибке скажет вам.
Здесь, вероятно, есть несколько проблем: та, которую вы заметили, и та, которую вы еще не заметили...
Без вашего кода мы не можем сказать, но есть вероятность, что вы загружаете изображение с помощью Изображение.Метод FromFile (String) (System.Рисование)[^] или одна из его перегрузок - и в документации четко указано:
Это означает, что пока экземпляр изображения существует в вашем приложении, Источник изображения используется, он не может быть открыт для записи или удален.Цитата:Файл остается заблокированным до тех пор, пока изображение не будет удалено.
Public Function GetImage(ByVal path As String) As Image Using im As Image = Image.FromFile(path) Return New Bitmap(im) End Using End FunctionПосле этого исходный файл больше не блокируется и может быть перезаписан или удален.
Эти замечания новы - я уверен, что раньше он держал файл заблокированным до тех пор, пока домен приложения не был выгружен. Может быть, они наконец-то решили проблему?
Не из того, что я помню - это было так, по крайней мере, с .NET V2.0, что я могу вспомнить.
Это странно. Должно быть, мой мозг стареет. :)