архивация файлов, выбраных в ListBox
Доброго времени суток уважаемые форумчане. Помогите решить проблему:
Есть процедура для архивации файлов средствами ShellApi: Код:
... Есть обработчик событий: Код:
... Код:
Процесс не может получить доступ к Файлу, так как зтот Файл занят другим процессом. Можно ли как то решить этот вопрос по работе приведенной выше процедуры или может есть совет по иному способу архивации? Заранее благодарен. p.s. Вроде как и не логично "запихивать" в архив по одному файлу но другого ниче в голову не пришло. |
надо сперва объединить выбранные в ListBox файлы в строку через пробел
а затем эту строку подставить в PackFile() P.S. список передается через пробел |
Цитата:
Цитата:
Код:
symbol = ' ';// символ для отделения файлов ( пробел ) Цитата:
|
Благодарю всех откликнувшихся. LilLoco Немножко подправил Ваш код:
Код:
... Еще раз всем спасибо! |
Доброго времени! Возвращаюсь обратно к созданой теме.
Работает все нормально НО, если архивирую больше трех файлов выскакивает вся та же ошибка, отчет из лога WinRar: Код:
17.10.2011 15:16:16 Невозможно открыть d:\Arhive\123456.rar проблему "решил" отключив отчет об ошибках Код:
s := 'a -inul -ilog.\ErrRar.txt -dh -ep -m5 ' + ArcName + ' ' + FileName; |
camope3, Вы всё же стали паковать файлы по-отдельности, а не списком?
|
Цитата:
Код:
PackFile('d:\Arhive\123456.rar', files); либо в процедуре Код:
s := 'a -ilog.\ErrWinRar.txt -dh -ep -m5 ' + ArcName + ' ' + FileName; но тогда WinRar снова выдает ошибку: Код:
17.10.2011 22:27:11 Невозможно открыть d:\Arhive\123.doc d:\Arhive\122.doc p.s. Начал извращаться дальше, выгрузил список в файл spis.txt написал батник Код:
D: Код:
Синтаксическая ошибка в имени файла, имени папки или метке тома Код:
d:\Arhive\111.doc d:\Arhive\122.doc d:\Arhive\123.doc Я уже и незнаю где, что и как искать, просто замкнутый круг какой то :( |
camope3, попробуйте привести весь получившийся итоговый код, относящийся к формированию перечня файлов и упаковке файлов.
Список Вы формировали именно так: |
Iska Спасибо!
Код:
.... Код:
ListBox1.Items.SaveToFile(ExtractFilePath(Application.ExeName) + 'spis.lst' //сохраняет файл список в директории с программой |
camope3: во-первых, Вы напутали с количеством скобок и кавычками:
Код:
PackFile (d:\Arhive\123456.rar,(ExtractFilePath(Application.ExeName)+'@spis.lst'); Код:
PackFile ('d:\Arhive\123456.rar', '@'+ExtractFilePath(Application.ExeName)+'spis.lst'); |
Цитата:
Iska Еще раз спасибо Вам огромное за уделенное мне время. |
Цитата:
|
Время: 16:01. |
Время: 16:01.
© OSzone.net 2001-