Рубрика «архивация» - 2

Здравствуйте, уважаемые читатели !

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

Перебрав много разных вариантов, я остановился на очень удобном для подобных задач решении. Этим решением является использование библиотеки Objective-Zip.

Об этой маленькой, но очень удобной и функциональной библиотеке, я и хочу Вам рассказать.

Читать полностью »

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

В данной статье мы попробуем разработать собственный кроссплатформенный консольный архиватор с поддержкой как архивации, так и распаковки ранее запакованых файлов. Требуется уложиться в 200 строчек кода. Писать будем на C++, используя при этом лишь его стандартные библиотеки. Поэтому привязанности к определенной платформе нет — работать это будет и в Windows, и в Linux.
Почему C++, а не привычный C? Не то, что бы я имею что-то против СИ, просто в нем достаточно проблематично работать со строками и, к тому же, отсутствует ООП. Следовательно, если бы мы использовали C, то в 200 строк, думаю, вряд ли бы уложились. Ну, да ладно, приступим же!

Intro

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

Так что же требуется знать, чтобы написать архиватор? Думаю, кроме наличия некоторых знаний уровня «выше базового», касающихся C++, лишь то, что файл — это байты. И ничего более.

Читать полностью »

Разрабатываем новый формат файла для бэкапа сайтовСейчас работаю над новым PHP-скриптом, который будет бэкапить не только базу данных, но и файлы сайта.

Изначально планировалось использовать один из распространённых форматов архивов. В данном случае, первое, что приходит в голову — ZIP и TAR. Для них есть множество готовых классов, а расширение ZIP даже входит в стандартную поставку PHP. Но изучив спецификации форматов, а также опробовал готовые решения, склонился к изобретению своего велосипеда.

Просьба «велосипедохейтеров» воздержаться от комментариев в стиле «хватит нам велосипедов». В конце концов, без создания «велосипедов» не было бы ни Google, ни Google Chrome, ни Facebook, ни WinRAR и 7-Zip.Читать полностью »

Иногда очень хочется быстро найти нужный файл. С учетом того, что файлов — сотни тысяч, а ты не знаешь ни его названия, ни содержания, ни типа — ничего. Зато приблизительно знаешь категории. И хочется его быстро вычислить и сразу же отредактировать и записать.
На сегодня удобных кросс-платформенных open-source файлопомоек с прямым доступом к файлам — НЕТ.
Далее речь пойдет не о медиабиблиотеке и не о semaweb — а о простой и удобной системе управления громадной файлопомойкой с прямым доступом к файлам.
Читать полностью »

JSZip спустя полгода: распаковка архивов, работа на Node.js22 ноября 2011 года JiLiZART всем нам сообщил, что есть на свете полезная библиотека JSZip с открытым исходным кодом, написанная на джаваскрипте и умеющая создавать zip-архивы (и даже, если это необходимо — с подкаталогами) из скормленных ей текстовых и двоичных данных.

Первым же комментарием к его сообщению стали мои слова:

 — Прекрасно.

 — Теперь ему бы ещё распаковывать уметь.

Прошло полгода с тех пор, и можно видеть, что это естественное пожелание сбылось: очевидно, оно пришло на ум не одному мне, так что программисты принялись за дело — и в открытый на Гитхабе исходный код JSZip добавили методы, способные служить и распаковке zip-архивов, а не только составлению их. (Подробности употребления новинок API смотрите в документации.)

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

Поклонникам же джаваскриптового движка Node.js будет наверняка не менее приятно узнать о появлении модуля node-zip, содержащего весь код JSZip, оформленный в качестве модуля Node. Стало быть, теперь JSZip можно запускать не только во браузере, но и на сервере, а равно и у себя на компьютере.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js