Программы, которые упаковывают и распаковывают файлы, называются

Обновлено: 04.07.2024

Упаковщик приложений (MakeAppx.exe) создает пакет приложения из файлов на диске или извлекает файлы из пакета приложения на диск. Начиная с Windows 8.1, упаковщик приложений также создает пакет пакетов приложений из пакетов приложений на диске или извлекает пакеты приложений из пакета пакетов приложений на диск. Он входит в состав Microsoft Visual Studio и комплекта разработки программного обеспечения Windows (SDK) для Windows 8 или комплекта разработки программного обеспечения Windows (SDK) для Windows 8.1 и более поздних версий. Посетите раздел "Загрузки для разработчиков", чтобы получить их.

Инструмент MakeAppx.exe обычно находится в папках, зависящих от версии операционной системы:

  • На платформе x86:
    • C:\Program Files (x86)\Windows Kits\8.0\bin\x86\makeappx.exe
    • C:\Program Files (x86)\Windows Kits\8.1\bin\x86\makeappx.exe
    • C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x86\makeappx.exe
    • C:\Program Files (x86)\Windows Kits\8.0\bin\x86\makeappx.exe
    • C:\Program Files (x86)\Windows Kits\8.0\bin\x64\makeappx.exe
    • C:\Program Files (x86)\Windows Kits\8.1\bin\x86\makeappx.exe
    • C:\Program Files (x86)\Windows Kits\8.1\bin\x64\makeappx.exe
    • C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x86\makeappx.exe
    • C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64\makeappx.exe

    Версии инструмента для ARM нет.

    Использование упаковщика приложений

    Относительные пути поддерживаются во всем инструменте.

    Чтобы создать пакет с использованием структуры каталогов

    Поместите AppxManifest.xml в корень каталога, содержащего все файлы полезной нагрузки для вашего приложения. Для пакета приложения создается идентичная структура каталогов, которая будет доступна при извлечении пакета во время развертывания.

    Поместите все файлы в единую структуру каталогов, создав нужные подкаталоги.

    Создайте действительный манифест пакета, AppxManifest.xml, и поместите его в корневой каталог.

    Выполните эту команду:

    MakeAppx pack /d путь_входного_каталога /p путь к файлу.appx

    Чтобы создать пакет с помощью файла сопоставления

    Создайте действительный манифест пакета, AppxManifest.xml.

    Создайте файл сопоставления. Первая строка содержит строку [Files], а последующие строки указывают исходный (диск) и целевой (пакет) пути в строках в кавычках.

    Выполните эту команду:

    MakeAppx pack /f mapping_filepath /p filepath.appx

    Подписать пакет с помощью SignTool

    Создайте сертификат. Издатель, указанный в манифесте, должен соответствовать информации о субъекте издателя в сертификате подписи. Дополнительные сведения о создании сертификата подписи см. в разделе Как создать сертификат подписи пакета приложения.

    Запустите SignTool.exe, чтобы подписать пакет:

    Знак SignTool /a /v /fd hashAlgorithm /f имя_файла_сертификата путь к файлу.appx

    Алгоритм hashAlgorithm должен соответствовать алгоритму хеширования, использованному для создания карты блоков при упаковке приложения. В утилите упаковки MakeAppx алгоритм хеширования блок-карты Appx по умолчанию — SHA256. Запустите SignTool.exe, указав SHA256 в качестве алгоритма дайджеста файла (/fd):

    Знак SignTool /a /v /fd SHA256 /f certFileName путь к файлу.appx

    Дополнительную информацию о том, как подписывать пакеты, см. в статье Как подписать пакет приложения с помощью SignTool.

    Чтобы извлечь файлы из пакета

    Выполните эту команду:

    MakeAppx распаковать /p файл.appx /d каталог_вывода

    Распакованный пакет имеет ту же структуру, что и установленный пакет.

    Чтобы создать пакет пакетов с использованием структуры каталогов

    Мы используем команду bundle, чтобы создать пакет приложений, добавив все пакеты из (включая подпапки). Если содержит манифест пакета, AppxBundleManifest.xml, он игнорируется.

    Поместите все пакеты в единую структуру каталогов, создав нужные подкаталоги.

    Выполните эту команду:

    Пакет MakeAppx /d путь_входного_каталога /p путь к файлу.appxbundle

    Чтобы создать пакет пакетов с помощью файла сопоставления

    Мы используем команду bundle, чтобы создать набор приложений, добавив все пакеты из списка пакетов в . Если содержит манифест пакета, AppxBundleManifest.xml, он игнорируется.

    Создать файл . Первая строка содержит строку [Files], а в следующих строках указываются пакеты, добавляемые в комплект. Каждый пакет описывается парой путей в кавычках, разделенных пробелами или табуляцией. Пара путей представляет собой источник пакета (на диске) и пункт назначения (в комплекте). Все имена целевых пакетов должны иметь расширение .appx.

    Выполните эту команду:

    Пакет MakeAppx /f mapping_filepath /p путь к файлу.appxbundle

    Чтобы извлечь пакеты из пакета

    Выполните эту команду:

    MakeAppx unbundle /p bundle_name.appxbundle /d каталог_вывода

    Распакованный пакет имеет ту же структуру, что и установленный пакет.

    Чтобы зашифровать пакет с помощью файла ключа

    Создайте файл ключа. Файлы ключей должны начинаться со строки, содержащей строку «Программы, которые упаковывают и распаковывают файлы, называются», за которой следуют строки, описывающие ключи для шифрования пакета. Каждый ключ описывается парой строк в кавычках, разделенных пробелами или символами табуляции. Первая строка представляет собой идентификатор ключа, а вторая строка представляет собой ключ шифрования в шестнадцатеричной форме.

    Выполните эту команду:

    MakeAppx.exe encrypt /p имя_пакета.appx /ep имя_зашифрованного_пакета.eappx /kf имя_ключевого_файла.txt

    Входной пакет будет зашифрован в указанный зашифрованный пакет с помощью предоставленного файла ключа.

    Чтобы зашифровать пакет с помощью глобального тестового ключа

    Выполните эту команду:

    MakeAppx.exe encrypt /p имя_пакета.appx /ep имя_зашифрованного_пакета.eappx /kt

    Входной пакет будет зашифрован в указанный зашифрованный пакет с использованием глобального тестового ключа.

    Чтобы расшифровать пакет с файлом ключа

    Создайте файл ключа. Файлы ключей должны начинаться со строки, содержащей строку «Программы, которые упаковывают и распаковывают файлы, называются», за которой следуют строки, описывающие ключи для шифрования пакета. Каждый ключ описывается парой строк в кавычках, разделенных пробелами или символами табуляции. Первая строка представляет собой 32-байтовый идентификатор ключа в кодировке base64, а вторая строка представляет собой 32-байтовый ключ шифрования в кодировке base64.

    Программы, которые упаковывают и распаковывают файлы, называются "OWVwSzliRGY1VWt1ODk4N1Q4R2Vqc04zMzIzNnlUREU=" "MjNFTlFhZGRGZEY2YnVxMTBocjd6THdOdk9pZkpvelc to-decrypt-a-package-with-a-global-test-key">Чтобы расшифровать пакет с помощью глобального тестового ключа

    Выполните эту команду:

    MakeAppx.exe расшифровать /p имя_пакета.appx /ep незашифрованное_имя_пакета.eappx /kt

    Входной пакет будет расшифрован в указанный незашифрованный пакет с использованием глобального тестового ключа.

    Использование

    Аргумент командной строки /p всегда требуется вместе с /d, /f или /ep. Обратите внимание, что /d, /f и /ep являются взаимоисключающими.

    Пакет MakeAppx [параметры] /p /d

    Пакет MakeAppx [параметры] /p /f

    MakeAppx распаковать [параметры] /p /d

    Пакет MakeAppx [параметры] /p /d

    Пакет MakeAppx [параметры] /p /f

    MakeAppx разделить [параметры] /p /d

    MakeAppx зашифровать [параметры] /p /ep

    MakeAppx расшифровать [параметры] /p /ep

    Синтаксис командной строки

    Вот общий синтаксис командной строки для MakeAppx.

    MakeAppx [pack|unpack|bundle|unbundle|encrypt|decrypt] [/h /kf /kt /l /o /no /nv /v /pfn /?]

    MakeAppx упаковывает или распаковывает файлы в пакете, объединяет или разделяет пакеты в пакете, а также шифрует или расшифровывает пакет или пакет приложения в указанном входном каталоге или файле сопоставления. Вот список параметров, которые применяются к пакету MakeAppx, распаковке MakeAppx, пакету MakeAppx, развязке MakeAppx, шифрованию MakeAppx или дешифрованию MakeAppx.

    Этот параметр используется для локализованных пакетов. Проверка по умолчанию для локализованных пакетов. Этот параметр отключает только эту конкретную проверку, не требуя отключения всех проверок.

    Перезаписать выходной файл, если он существует. Если вы не укажете этот параметр или параметр /no, пользователю будет предложено перезаписать файл.

    Вы не можете использовать эту опцию с параметром /no.

    /нет

    Предотвращает перезапись выходного файла, если он существует. Если вы не укажете этот параметр или параметр /o, пользователю будет предложено перезаписать файл.

    Вы не можете использовать эту опцию с параметром /o.

    /nv

    Пропустить семантическую проверку. Если вы не укажете этот параметр, инструмент выполнит полную проверку пакета.

    /v

    Включить подробный вывод журнала на консоль.

    Отобразить текст справки.

    MakeAppx pack , MakeAppx unpack , MakeAppx bundle , MakeAppx unbundle , MakeAppx encrypt и MakeAppx decrypt — взаимоисключающие команды. Вот параметры командной строки, которые применяются конкретно к каждой команде:

    Пакет MakeAppx [h]

    Создает пакет.

    /h алгоритм

    Указывает хэш-алгоритм, используемый при создании карты блоков. Вот допустимые значения для алгоритма:

    SHA256 (по умолчанию) SHA384 SHA512

    Вы не можете использовать эту опцию с командой распаковки.

    MakeAppx распаковать [pfn]

    Извлекает все файлы в указанном пакете в указанный выходной каталог. Выходные данные имеют ту же структуру каталогов, что и пакет.

    /пфн

    Указывает каталог с полным именем пакета. Этот каталог создается в указанном месте вывода. Вы не можете использовать эту опцию с командой pack.

    MakeAppx развязать [pfn]

    Распаковывает все пакеты в подкаталог по указанному выходному пути, названному в честь полного имени пакета.Выходные данные имеют ту же структуру каталогов, что и установленный пакет пакетов.

    /пфн

    Указывает каталог с полным именем пакета пакетов. Этот каталог создается в указанном месте вывода. Вы не можете использовать эту опцию с командой пакета.

    MakeAppx зашифровать [kf, kt]

    Создает зашифрованный пакет приложения из указанного входного пакета приложения в указанном выходном пакете.

    /кф

    Шифрует пакет или комплект с помощью ключа из указанного файла ключа. Вы не можете использовать эту опцию с kt.

    /кт

    Шифрует пакет или комплект с помощью глобального тестового ключа. Вы не можете использовать эту опцию с kf.

    MakeAppx расшифровывает [kf, kt]

    Создает незашифрованный пакет приложения из указанного входного пакета приложения в указанном выходном пакете.

    /кф

    Расшифровывает пакет или комплект с помощью ключа из указанного файла ключа. Вы не можете использовать эту опцию с kt.

    /кт

    Расшифровывает пакет или комплект с помощью глобального тестового ключа. Вы не можете использовать эту опцию с kf.

    Семантическая проверка, выполненная MakeAppx

    MakeAppx выполняет ограниченную семантическую проверку, предназначенную для выявления наиболее распространенных ошибок развертывания и проверки правильности пакета приложения.

    Эта проверка гарантирует, что:

    • Все файлы, указанные в манифесте пакета, включены в пакет приложения.
    • У приложения не может быть двух одинаковых ключей.
    • Приложение не регистрируется для запрещенного протокола из этого списка: SMB , FILE, MS-WWA-WEB, MS-WWA.

    Эта семантическая проверка не завершена, и возможность установки пакетов, созданных MakeAppx, не гарантируется.

    Команды pack и unpack в основном используются для создания или чтения двоичных структур, чтобы быть совместимыми, скажем, с программами C. Кроме того, функция unpack часто может быть более удобной, чем функция substr (раздел ), для работы с некоторыми типами данных, ориентированных на столбцы.

    Обе функции принимают в качестве первого аргумента строку символов, описывающую формат данных, которые нужно упаковать или распаковать. Функция pack принимает список значений для упаковки в качестве второго аргумента и возвращает скалярную строку символов, содержащую упакованные значения. Функция unpack принимает в качестве второго аргумента строку символов, содержащую значения для распаковки, и возвращает список отдельных значений, извлеченных из строки. Полный список возможных символов для использования в качестве первого аргумента этих функций можно найти в онлайн-документации (через perldoc -f pack ); В таблице перечислены некоторые часто используемые коды. Одно предостережение относительно всех форматов кодирования, кроме ASCII и uuencoding, заключается в том, что эти форматы представляют собственный двоичный формат для типа данных на компьютере, на котором работает perl — если вы создаете упакованные строки, они могут не распаковываться должным образом на другом типе компьютера. . Использование их для упаковки и распаковки данных на одном компьютере не должно вызывать проблем.

    Таблица: коды символов для упаковки и распаковки
    Код Значение Код Значение
    a< /TD> строка ASCII, дополненная нулями A строка ASCII, дополненная пробелами
    c Символ со знаком C Беззнаковый символ
    d Число двойной точности f Число одинарной точности
    i Целое число со знаком I Целое число без знака
    l Длинное со знаком L Длинное без знака
    s Sig ned short S Unsigned short
    u< /TD> Закодированная строка @ Заполнение нулями до абсолютной позиции
    x Нулевой байт X Резервное копирование байта

    Когда вы создаете строку кодов для использования с этими функциями, вы можете дополнительно указать любой из кодов с целым числом повторений или звездочкой ( * ), чтобы указать максимально возможное количество повторений. Каждая комбинация кода и его необязательного счетчика представляет собой порцию данных, которую можно либо закодировать с помощью pack, либо декодировать с помощью unpack. Для иллюстрации рассмотрим проблему разделения разрешений команды ls, представленную в разделе .Мы могли бы извлечь разрешения и имена файлов из каждой строки вывода ls -l с помощью следующего вызова unpack (при условии, что $_ содержит строку вывода ls): Аналогично, три триплета разрешений можно поместить в массив @theperms со следующим вызовом для распаковки:

    Получите полный доступ к Programming Python, Second Edition и более чем 60 000 другим играм с бесплатной 10-дневной пробной версией O'Reilly.

    Есть также прямые онлайн-мероприятия, интерактивный контент, материалы для подготовки к сертификации и многое другое.

    Много лун назад (около пяти лет) я использовал машины, на которых не было инструментов для объединения файлов в единый пакет для удобства транспортировки. Ситуация такова: у вас завалялся большой набор текстовых файлов, которые нужно перенести на другой компьютер. В наши дни такие инструменты, как tar, широко доступны для упаковки множества файлов в один файл, который можно копировать, загружать, отправлять по почте или иным образом передавать за один шаг. Даже сам Python стал поддерживать zip-архивы в стандартной библиотеке 2.0 (см. модуль zipfile ).

    Однако до того, как мне удалось установить такие инструменты на свой компьютер, переносимые скрипты Python также хорошо работали. Пример 4-6 копирует все файлы, перечисленные в командной строке, в стандартный поток вывода, разделенные маркерными строками.

    Пример 4-6. PP2E\System\App\Clients\textpack.py

    При таком запуске программы создается один выходной файл с именем Packed.all , который содержит все три входных файла со строкой заголовка, указывающей имя исходного файла перед содержимым каждого файла. Такое объединение множества файлов в один упрощает передачу за один шаг — нужно скопировать только один файл на дискету, отправить по электронной почте и т. д. Если вам нужно переместить сотни файлов, это может стать большой победой.

    Однако после передачи такого файла его необходимо как-то распаковать на принимающей стороне, чтобы воссоздать исходные файлы. Для этого нам нужно сканировать объединенный файл построчно, отслеживая строки заголовков, оставленные упаковщиком, чтобы узнать, когда начинается содержимое нового файла. Другой простой скрипт Python, показанный в примере 4.7, делает свое дело.

    Пример 4-7. PP2E\System\App\Clients\textunpack.py

    Мы могли бы закодировать это в функции, как мы сделали это в textpack , но в этом мало смысла — как написано, скрипт опирается на стандартные потоки, а не на параметры функции. Запустите это в каталоге, где вы хотите разместить распакованные файлы, с упакованным файлом архива, переданным в командной строке в качестве стандартного потока ввода сценария:

    Упаковка файлов «++»

    Пока все хорошо; сценарии textpack и textunpack упростили перемещение большого количества файлов без большого ручного вмешательства. Но поиграв некоторое время с этими и подобными сценариями, я начал замечать общие черты, которые почти требовали повторного использования. Например, почти каждый инструмент оболочки, который я написал, должен был сканировать аргументы командной строки, перенаправлять потоки в различные источники и так далее. Кроме того, почти каждая утилита командной строки заканчивалась с другим шаблоном параметров командной строки, потому что каждая из них была написана с нуля.

    Следующие несколько классов являются одним из решений таких проблем. Они определяют иерархию классов, предназначенную для повторного использования общего кода инструмента оболочки. Более того, из-за повторного использования каждая программа, связанная с ее иерархией, имеет общий внешний вид с точки зрения параметров командной строки, использования переменных среды и многого другого. Как это обычно бывает с объектно-ориентированными системами, как только вы узнаете, какие методы следует перегружать, такая структура классов бесплатно обеспечит много работы и согласованность. Модуль в примере 4-8 адаптирует логику скрипта textpack для интеграции в эту иерархию.

    Пример 4-8. PP2E\Система\Приложение\Клиенты\packapp.py

    Здесь PackApp наследует члены и методы, которые обрабатывают:

    Службы операционной системы

    Перенаправление потока ввода/вывода

    из класса StreamApp, импортированного из другого файла модуля Python (перечисленного в примере 4-10). StreamApp предоставляет интерфейс «чтение/запись» для перенаправленных потоков и предоставляет стандартный протокол выполнения сценария «запуск/запуск/остановка». PackApp просто переопределяет методы start и run для своих целей, а также считывает и записывает себя для доступа к своим стандартным потокам. Большинство низкоуровневых системных интерфейсов скрыты классом StreamApp; в терминах ООП мы говорим, что они инкапсулированы .

    Этот модуль может быть запущен как программа и импортирован клиентом (помните, что Python присваивает модулю имя __main_ _, когда он запускается напрямую, поэтому он может определить разницу). При запуске в виде программы последняя строка создает экземпляр класса PackApp и запускает его, вызывая его основной метод — вызов метода, экспортированный StreamApp для запуска программы:

    Это имеет тот же эффект, что и скрипт textpack.py, но параметры командной строки ( -v для подробного режима, -o для имени выходного файла) унаследованы от суперкласса StreamApp.Распаковщик в примере 4.9 выглядит аналогично при переносе в объектно-ориентированную среду, потому что само понятие запуска программы имеет стандартную структуру.

    Пример 4-9. PP2E\Система\Приложение\Клиенты\unpackapp.py

    Этот подкласс переопределяет методы запуска и запуска, чтобы они выполняли правильные действия для этого скрипта — подготавливали и выполняли операцию распаковки файла. Все детали анализа аргументов командной строки и перенаправления стандартных потоков обрабатываются в суперклассах:

    Запуск этого скрипта выполняет ту же работу, что и исходный textunpack.py , но мы бесплатно получаем флаги командной строки ( -i указывает входные файлы). На самом деле способов запуска классов в этой иерархии больше, чем я могу здесь показать. Пара командной строки, -i - , например, заставляет скрипт считывать ввод со стандартного ввода, как если бы он был просто передан или перенаправлен в оболочке:

    Суперклассы иерархии приложений

    В этом разделе приведен исходный код StreamApp и App — классов, которые выполняют всю эту дополнительную работу от имени PackApp и UnpackApp. У нас нет места для подробного рассмотрения всего этого кода, поэтому обязательно изучите эти листинги самостоятельно для получения дополнительной информации. Все это обычный код Python.

    StreamApp: добавление перенаправления потока

    StreamApp добавляет несколько аргументов командной строки ( -i , -o ) и перенаправление потока ввода/вывода в более общий корневой класс приложения, указанный ниже; App, в свою очередь, определяет наиболее общие виды поведения программы, которые должны быть унаследованы в примерах 4-8, 4-9 и 4-10, т. е. во всех классах, производных от App .

    Пример 4-10. PP2E\System\App\Kinds\redirect.py

    Приложение: корневой класс

    Вершина иерархии знает, что значит быть приложением-оболочкой, но не знает, как выполнить конкретную служебную задачу (эти части заполняются подклассами). Приложение, перечисленное в примере 4-11, экспортирует часто используемые инструменты в стандартный и упрощенный интерфейс и настраиваемый протокол метода запуска/запуска/остановки, который абстрагирует выполнение скрипта. Он также превращает объекты приложения в файлы, подобные объектам: например, когда приложение читает себя, оно действительно читает любой источник, которому его стандартный входной поток был назначен другими суперклассами в дереве (например, StreamApp ).

    Пример 4-11. PP2E\System\App\Bases\app.py

    Зачем здесь использовать классы?

    Теперь, когда я перечислил весь этот код, некоторые читатели, естественно, захотят спросить: "Так зачем все эти хлопоты?" Учитывая количество дополнительного кода в объектно-ориентированной версии этих скриптов, это совершенно правильный вопрос. Большая часть кода, приведенного в примере 4.11, представляет собой логику общего назначения, предназначенную для использования во многих приложениях. Тем не менее, это не объясняет, почему объектно-ориентированные сценарии packapp и unpackapp больше, чем исходные эквивалентные не-OO-скрипты textpack и textunpack.

    Клиентам StreamApp не нужно запоминать все системные интерфейсы в Python, поскольку StreamApp экспортирует собственное унифицированное представление. Например, аргументы, потоки и переменные оболочки разделены между модулями Python (например, sys.argv, sys.stdout, os.environ); на этих занятиях все они собраны в одном месте.

    С точки зрения пользователя оболочки все клиенты StreamApp выглядят одинаково, поскольку они наследуют одни и те же интерфейсы к внешнему миру от своих суперклассов (например, флаги -i и -v).

    Весь общий код в суперклассах App и StreamApp необходимо отлаживать только один раз. Более того, локализация кода в суперклассах упрощает его понимание и изменение в будущем.

    Такой фреймворк может предоставить дополнительную предварительно запрограммированную утилиту, которую в противном случае пришлось бы перекодировать в каждом написанном нами скрипте (например, извлечение аргументов командной строки). Это верно как сейчас, так и в будущем: службы, добавленные в корневой класс приложений, сразу же становятся доступными для использования и настройки во всех приложениях, производных от этой иерархии.

    Поскольку доступ к файлам не жестко запрограммирован в PackApp и UnpackApp , они могут легко изменить поведение, просто изменив класс, от которого они наследуются. При правильном суперклассе PackApp и UnpackApp могли так же легко читать и писать в строки или сокеты, как и в текстовые файлы и стандартные потоки.

    Хотя это не очевидно, пока вы не начнете писать более крупные системы на основе классов, повторное использование кода, возможно, является самым большим преимуществом для программ на основе классов. Например, в главе 9 мы будем повторно использовать сценарии упаковщика и распаковщика на основе объектно-ориентированного программирования, вызывая их из графического интерфейса меню следующим образом:

    Поскольку эти классы инкапсулируют понятие потоков, их можно импортировать и вызывать, а не просто запускать как скрипты верхнего уровня. Кроме того, их код можно повторно использовать двумя способами: они не только экспортируют общие системные интерфейсы для повторного использования в подклассах, но и могут использоваться как программные компоненты, как в предыдущем листинге кода. Полный исходный код этих клиентов см. в каталоге PP2E\Gui\Shellgui.

    Конечно, Python не навязывает объектно-ориентированное программирование, и вы можете выполнить много работы с помощью более простых функций и скриптов. Но как только вы научитесь структурировать деревья классов для повторного использования, дополнительные усилия в области объектно-ориентированного программирования обычно окупаются в долгосрочной перспективе.

    Получите Programming Python, Second Edition прямо сейчас с онлайн-обучением O’Reilly.

    Члены O’Reilly проходят онлайн-обучение в режиме реального времени, а также получают книги, видео и цифровой контент от более чем 200 издателей.

    На этой странице вы узнаете, как упаковывать и распаковывать ZIP-файлы с помощью Проводника в Windows 10.

    Иннхольдсфортегнельсе [-]

    Что такое ZIP-файл?

    ZIP – это формат файла архива, который поддерживает сжатие данных без потерь. ZIP-файл может содержать один или несколько файлов или папок. При добавлении нескольких файлов в ZIP-файл файлы будут отображаться как один файл, а также занимать меньше места на диске. ZIP-файлы характеризуются суффиксом .ZIP.

    Существует множество приложений, использующих формат файлов ZIP, и различные операционные системы имеют встроенную поддержку для работы с файлами ZIP. На этой странице показано, как использовать Проводник в Windows 10 для упаковки (сжатия) и распаковки (извлечения) ZIP-файлов.

    Как распаковать ZIP-файл

    1. Выберите (одним щелчком) ZIP-файл, который хотите распаковать (извлечь) в проводнике.
    2. Нажмите файл правой кнопкой мыши, чтобы открыть меню
    3. Выберите в меню Извлечь все.
    4. В диалоговом окне выберите, в какую папку вы хотите распаковать файлы.
    5. Выберите Извлечь, и содержащиеся файлы будут распакованы в выбранную папку.
    6. Как упаковать ZIP-файл

      1. Выберите файлы/папки, которые вы хотите упаковать (сжать), в проводнике (удерживайте нажатой клавишу Ctrl, чтобы выбрать несколько элементов)
      2. После выбора файла щелкните файл правой кнопкой мыши, чтобы открыть меню.
      3. Выберите Отправить -> Сжатая (заархивированная) папка
      4. Дайте ZIP-файлу имя
      5. Нажмите Enter, и ZIP-файл будет сохранен в текущей папке.
      6. Как распаковать ZIP-файл (Mac)

        1. Перейдите к папке, содержащей ZIP-архив, и дважды щелкните файл архива.
        2. Архив будет распакован в папку, в которой вы находитесь.

        Как упаковать ZIP-файл (Mac)

        1. Найдите файл(ы)/папку(и), которые вы хотите сжать.
        2. Выбрав файлы, щелкните правой кнопкой мыши один из них, чтобы открыть меню.
        3. Нажмите «Сжать X элементов».

        Контакт

        Служба поддержки Orakel может помочь, если у вас возникнут вопросы или трудности.

        Читайте также: