Страница 2 из 5
Добавлено: Пт авг 05, 2011 16:54
shveicar
Flasher писал(а):Установка для 7zip - это всего лишь распаковка. Достаточно в папку в TC скинуть файлы dll. sfx, 7zip.exe - и будет портабельный вариант
Спасибо, Разобрался - просто распаковщика, под рукой не было. С 7zip скрипт работает, так все-же, как помещать готовые архивы в те-же папки, что и исходники? или для этого лучше сделать отдельный вариант скрипта?
Добавлено: Пт авг 05, 2011 17:39
Flasher
Я же
написал как. Ошибся насчёт файлов, всё будет ок, исправил по ссылке. В самом коде не меняю, т.к. считаю такой подход неприемлемым в качестве общего.
Flasher писал(а):С rar, увы, придётся смириться.
Пардон, думал, что с полными путями не работает. Надо убрать красное в строке
Param = "a " & S & " """ & Path & Name & """ """ & FSO.GetFileName(F) & """"
В посте с кодом поправил.
Добавлено: Пт авг 05, 2011 19:09
shveicar
Flasher писал(а):Пардон, думал, что с полными путями не работает. Надо убрать красное в строке
Вот теперь другое дело, а то я чувствовал, что что-то, здесь не так! Ну главное - теперь все работает, заодно и с 7zip разобрался. Не проверял пока, на больших файлах, но думаю тоже будет порядок, если что - напишу. Большое спасибо.
Добавлено спустя 1 час 27 минут:
И еще вопрос, вот здесь
Flasher писал(а):Я же написал как
при замене
Код: Выделить всё
Param = "a """ & PF & "" & Name & """" & Str & S
Else
Pr = RAR
Param = "a -ep1" & S & " """ & PF & "" & Name & """" & Str
получается, что внутри папок с вложенными файлами (глубина вложенности-1, если больше, то идет упаковка с папками) создаются архивы с именами
папок а не самих- файлов, а это не есть хорошо, конечно можно потом, задействовать групповое переименование, но если есть возможность сразу решить этот вопрос, будет намного удобнее, и по поводу глубины вложенности-( можно ли это изменить) хотелось бы создавать архивы с именами
файлов в папках с глубиной вложенности больше одного.(или, проще говоря- упаковывать файлы из самой последней по глубине, папки) Спасибо.
Добавлено: Пт авг 05, 2011 19:23
Flasher
shveicar писал(а):глубина вложенности-1, если больше, то идет упаковка с папками
Я писал как это исправить.
shveicar писал(а):создаются архивы с именами папок а не самих- файлов, а это не есть хорошо
Не понял. Правильная логика: папка одна - имя одно. Неправильная логика: файлов много - имя одно.
shveicar писал(а):и по поводу глубины вложенности-( можно ли это изменить) хотелось бы создавать архивы с именами файлов в папках с глубиной вложенности больше одного.(или, проще говоря- упаковывать файлы из самой последней по глубине, папки)
Опять путано. Глубина вложенности может быть разная, и то, что "больше одного" не означает, что речь идёт о самой последней по глубине.
Во всяком случае сейчас пока на рекурсию времени нет, потом как-нибудь.
Добавлено: Пт авг 05, 2011 20:05
shveicar
Flasher писал(а):Не понял. Правильная логика: папка одна - имя одно. Неправильная логика: файлов много - имя одно.
С этим ясно, но я говорю, что имя архива берется не из имени файла,( по логике), а из имени папки. Пример - каталог с вложенными файлами под курсором, выделяем его, жмем кнопку,(вариант скрипта с
Код: Выделить всё
For Each FF in PF.SubFolders
Str = Str & " """ & FF & """"
Next
If Len(Filt) > 0 Then Str = ""
) и создается внутри папки - архив, с именем
папки и с вложенными в него файлами. По идее должно быть так, - каталог с вложенными файлами под курсором, выделяем его, жмем кнопку, и создаются внутри папки - архивы, с именами
файлов.
Добавлено: Пт авг 05, 2011 20:16
Flasher
shveicar писал(а):но я говорю, что имя архива берется не из имени файла,( по логике), а из имени папки.
Какого файла? Файлов много в папке! И все они упаковываются в один архив. Тут логика самая что ни на есть верная.
shveicar писал(а):создаются внутри папки - архивы, с именами файлов
Это уже другая реализация. См. название скрипта.
Добавлено: Пт авг 05, 2011 20:33
shveicar
Flasher писал(а):Это уже другая реализация. См. название скрипта.
Смотрю и думаю, где-же в названии это прописано?
Упаковать каждый файл или содержимое каждой папки в отдельный архив
Тогда стоило назвать так-
Упаковать содержимое каждой папки в отдельный архив
...Ну если будет возможность, добавьте пожалуйста реализацию - Упаковать каждый файл в свой архив.
Добавлено: Пт авг 05, 2011 20:37
Flasher
shveicar писал(а):Тогда стоило назвать так-
Максимум, что тут стоило - это поменять "или" на "и", хотя это сути не меняет.
shveicar писал(а):Ну если будет возможность, добавьте пожалуйста реализацию - Упаковать каждый файл в свой архив
Она уже есть. Упаковывается каждый выделенный файл в свой архив. Выше обсуждалась правка касаемо именно отдельных файлов (поиск/BranchView).
Добавлено: Пт авг 05, 2011 21:22
shveicar
Flasher писал(а):Выше обсуждалась правка касаемо именно отдельных файлов (поиск/BranchView)
Да, но только архивы создаются не там где исходные файлы, ну да ладно, буду потом использовать скрипт перемещения, чтобы вернуть их туда где лежат исходники (хотя удалить исходники, после архивации проще чем настроить перемещение). Конечно скрипт удобный, но дополнения бы ему не помешали, ну да ладно, подожду рекурсии. Спасибо.
Добавлено: Пт авг 05, 2011 21:44
Flasher
shveicar писал(а):Да, но только архивы создаются не там где исходные файлы.
В обычном режиме достаточно в качестве пути назначения прописать "%P" - приведено в примерах, а для остальных режимов нужно после
вставить строку
и заменить
Path на
N.ParentFolder & "" в первых двух связках
Path & Name.
shveicar писал(а):ну да ладно, подожду рекурсии
По рекурсии лучше отдельный скрипт написать, например, "Рекурсивная пофайловая упаковка", если такой подход вообще устроит. Каждый файл на любой глубине выделенных папок будет паковаться в отдельный архив рядом с исходником.
Добавлено: Пт авг 05, 2011 22:49
shveicar
Спасибо за совет, но у меня получается "замкнутый круг". Изначально моя задача была вроде бы простой - выделить 30 каталогов со вложенными папками в которых находятся видео файлы, и упаковать их в то-же место где и исходники, причем каждый видео файл в свой архив, иначе размер архива - слишком большой, -(почему-то это считается кривым подходом, ну да ладно), далее через "поиск" я находил все файлы которые помещались в архивы и удалял их (в принципе, удаление можно использовать для каждого файла при архивации, но для страховки проще так). Вот в принципе и все. Здесь-же получился другой вариант, и вот я его пытаюсь приспособить под свои нужды и получается - то имена архивов берутся из папок, то (при тестировании) все файлы помещаются все в один архив, а теперь вот и с путями любые варианты кроме того который нужен. Жаль, что я изначально не полностью обрисовал Т.З. Ну да ладно,
Flasher писал(а):shveicar, пляши!
Рад бы сплясать, да башмаки жмут!
Добавлено: Пт авг 05, 2011 23:11
Flasher
shveicar писал(а):Здесь-же получился другой вариант, и вот я его пытаюсь приспособить под свои нужды и получается - то имена архивов берутся из папок, то (при тестировании) все файлы помещаются все в один архив, а теперь вот и с путями любые варианты кроме того который нужен.
По выделенным папкам я пока ничего не предлагал, только по файлам. См. опять же контекст обсуждаемого. Если именно о выделенных файлах речь, то в один архив могут положиться только те файлы, которые лежать в одной папке и имеют одно базовое имя. Чтобы этого не происходило можно в скрипте
Bas поменять на
Fil, тогда в качестве базовых имён архивов будут подставляться полные имена файлов.
shveicar писал(а):Жаль, что я изначально не полностью обрисовал Т.З. Ну да ладно,
А вот и не ладно. На будущее сообщаю, что ТЗ надо формировать изначально полностью со всеми недосказанностями, поправками и желательно с использованием верной терминалогии. Сухо, последовательно и понятно. Если не получается грамотно выстроить картинку желаемого, лучше переспросить в личке. Любой необжиданно родившийся нюанс может повлиять на картину кода, значительную часть которого придётся перекраивать.
Поэтому логичным было бы по теме рекурсии изложить попунктно всё необходимое: фильтрация, с папками/без, места складирования архивов (общее или в соответствии с текущим местоположением), глубина вложенности.
Добавлено: Пт авг 05, 2011 23:57
shveicar
Извиняюсь за не пунктуальность. На будущее учту.
Добавлено: Сб авг 06, 2011 17:58
shveicar
Добрый день. Виду того, что
Автор скрипта в
этой теме считает свою задачу исчерпывающей. Мне остается надеется, что в новой теме, для моей
просьбы будет создан скрипт, возможно аналогичный
этому скрипту. На всякий случай создаю отдельную
тему Рекурсивная пофайловая упаковка". Заранее благодарен.
Добавлено: Сб авг 06, 2011 19:35
Flasher
shveicar писал(а):Добрый день. Виду того, что Автор скрипта считает свою задачу исчерпывающей
Моя задача будет исчерпана до тех пор пока все написанное мной перестанет игнорироваться. Об остальном я уже написал выше. В частности:
Flasher писал(а):По рекурсии лучше отдельный скрипт написать, например, "Рекурсивная пофайловая упаковка", если такой подход вообще устроит. Каждый файл на любой глубине выделенных папок будет паковаться в отдельный архив рядом с исходником.