Пошаговые руководства, шпаргалки, полезные ссылки...
БлогФорумАвторы
Полезные Online-сервисы
Перечень Бесплатного ПО
Подписка на RSS-канал
В macOS есть старая проблема кодировок в zip-архивах. Если создать архив штатным архиватором, а после открыть его штатным архиватором Windows или старой версией 7-zip, которая ещё не использовала кодировку UTF-8 по умолчанию, то можно увидеть нечитаемые имена вложенных в архив файлов и каталогов:
Сторонние бесплатные архиваторы, например Keka, также имеют эту проблему, хотя разработчик и обещает это решить. Коммерческие решения не проверялись.
Когда я начал заниматься решением этой проблемы, задумался о том, что неплохо было бы иметь возможность создать архив и сразу добавить его в качестве вложения в почтовом сообщении.
Установим бесплатную библиотеку p7zip:
brew install p7zip
Откроем Automator.app и создадим документ типа Служба
Настроим параметры: Служба получает файлы и папки в Finder.app
Добавим 1 шаг (этот шаг – основной, так как с его помощью создаётся архив):
Запустить shell-скрипт (тип bash), передать входные данные как аргументы.
Вставим скрипт:
#!/bin/bash #Блок переменных TEMPPATH=~/tmp/arch4mail ARCPATH=$(dirname "${1}") ARCNAME=$(basename "${ARCPATH}") #Расположение архива echo "$TEMPPATH"/"$ARCNAME".zip #Создать архив for FILES in "$@" do /usr/local/bin/7z -tzip a "$TEMPPATH"/"$ARCNAME".zip "$FILES" done
Добавим 2 шаг:
Запустить shell-скрипт; тип bash; передать входные данные как аргументы.
#!/bin/bash echo "$1"
Вторым шагом получаем расположение архива. Это понадобится в дальнейшем для его удаления.
Добавим 3 шаг: Установить значение переменной. Создадим переменную, например Archive.
Archive
Добавим 4 шаг: Получить указанные объекты Finder
Добавим 5 шаг: Новое сообщение почты. Если необходимо, в поле сообщения можно ввести текст, а также выбрать учётную запись, от имени которой будет выполняться отправка письма.
Если Вы используете сторонние решения клиента электронной почты, то необходимо добавить шаг «Открыть объекты Finder» и из ниспадающего списка выбрать свой почтовый клиент.
Добавим 6 шаг: Получить значение переменной. Выберем ранее созданную переменную Archive.
Добавим 7 шаг: Переместить объект Finder в корзину
Сохраняем службу под именем Создать архив и отправить
Проверяем работу службы.
В каталоге «Тест архива» располагаются файлы и каталог:
Выделяем всё и с контекстного меню из раздела «службы» выбираем Создать архив и отправить. Появляется окно почтового клиента:
Отправим и посмотрим то, как откроется архив штатным архиватором:
Обратная ситуация аналогична, если пользователь Windows создаст архив штатной сжатой папкой или будет использовать старую версию 7-zip, то пользователь macOS увидит такое:
Для решения этого вопроса проще использовать готовое бесплатное решение доступное в AppStore – The Unarchiver.
Стоит заметить, что подобный архив не откроется на iOS* в программе Файлы**.
Проверено на следующих конфигурациях:
Автор первичной редакции: Виталий Якоб Время публикации: 20.05.2018 18:09