Страница: 1 |
Страница: 1 |
Вопрос: Че за ошибка???
Добавлено: 30.03.06 14:13
Автор вопроса: avdey | ICQ: 219571279
Kill("D:\PreBase\" & File1.Items(Ind))
Доходя до строки с Kill пишет вот это:
IOException was unhandled
The process cannot access the file 'D:\PreBase\4п;Алоэ д-и 1мл;180705;Дальхимфарм.jpg' because it is being used by another process.
Копировать-то копирует, а удалить не хочет. Пробовал FileMove, тоже самое, на нем застревает. У меня еще этот самый файл (копируемый) торчит в Image, может из-за этого, но... перед FileCopy загружал в Image другой файл, опять ошибка, может не успевает перед копированием сменить файл в Image и поэтому пишет что файл занят???
Подскажите...
З.Ы. В VB6 этот код работал, а в VB2005 нехочет...
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
SRV
ICQ: 254226129
Вопросов: 30
Ответов: 107
Профиль | | #1
Добавлено: 30.03.06 15:26
Ты наверное забыл дописать ещё имя файла, программа не может удалить файл если ты указал только путь к нему, допиши D:\PreBase\123.txt может получится
Номер ответа: 2
Автор ответа:
SRV
ICQ: 254226129
Вопросов: 30
Ответов: 107
Профиль | | #2
Добавлено: 30.03.06 15:26
аааа, сорри, не рассмотрел ещё & File1.Items(Ind)
Забираю выше написанное назад
Номер ответа: 3
Автор ответа:
avdey
ICQ: 219571279
Вопросов: 34
Ответов: 486
Профиль | | #3
Добавлено: 30.03.06 15:57
Попробовал картинку в Image вообще не загружать, все шпарит.
Ставлю значение Image1.Image = Nothing перед копированием (чтобы выгрузить копируемый файл), опять ошибка........, а мне нужно чтобы текущая картинка загружалась в Image...
Номер ответа: 4
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #4
Добавлено: 01.04.06 05:38
Попробуй Dispose'нуть картинку, если она умеет.
Лучше даже какой-нить Image1.Clear или вроде того.
Ну и GC.Collect после этого.
Номер ответа: 5
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #5
Добавлено: 01.04.06 13:52
Я сталкивался с подобной бедой. Тут фишка в другом, после загрузки картинки у тебя Stream наверняка остается открытым, и пока ты его принудительно не закроешь, картинку не удалишь.
Номер ответа: 6
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #6
Добавлено: 01.04.06 13:53
Ну, значит картинка занята, видимо, даже не твоим процессом...
Image файл не занимает.
Диспозить тоже не прокатит.
И вообще... DoEvents поставть между Киллом и Копированием.
Номер ответа: 7
Автор ответа:
avdey
ICQ: 219571279
Вопросов: 34
Ответов: 486
Профиль | | #7
Добавлено: 03.04.06 14:31
2Noviks
Тык в VB6 все шпарит!!!!!!! А в VB2005 вылазит ошибка!!!!!! С DoEvents не работает...
2EROS
Я тоже склоняюсь к этому мнению...
Если поочереди загружать в Image 10 картинок, то когда загружена 10 картинка ты к 1 доступ не получишь, значит сохраняется какая-то связь и как ее разорвать - главный вопрос!!!
2All
Тема еще открыта, есть идеи???
Номер ответа: 8
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #8
Добавлено: 03.04.06 22:22
Да какие тут идеи.. я ж тебе говорил,что у тебя поток открытый остается.. я сам на эти грабли наступил. Чтобы это обойти, надо принудительно закрыть поток.. сделать это можно прмерно так:
Dim ImgCopyPath As String = ":\CopyTest.jpg"
Dim fs As FileStream = File.Open(ImgPath, FileMode.Open)
PictureBox1.Image = Image.FromStream(fs)
fs.Close()
My.Computer.FileSystem.CopyFile(ImgPath, ImgCopyPath, True)
My.Computer.FileSystem.DeleteFile(ImgPath)
И никакой связи..
Номер ответа: 9
Автор ответа:
avdey
ICQ: 219571279
Вопросов: 34
Ответов: 486
Профиль | | #9
Добавлено: 04.04.06 15:05
Надо заценить твой код, Спасибо!!!