Изисквания: Проектът трябва да декомпресира или компресира качения компресиран пакет, което обикновено може да се постигне чрез WinRAR, но трябва да използваме програмни методи за реализация и е невъзможно ръчно да се декомпресира файлът. Тъй като WinRAR е таксуем, можем да използваме .NET/C#, за да извикваме 7z, като изпълняваме операции с команден ред, за да задоволим нуждите си.
Преглед:
7-Zip е архиватор на файлове с висока степен на компресия. 7-Zip е с отворен код и безплатен софтуер. Повечето от кода са лицензирани под GNU LGPL. Някои части от кода са лицензирани по BSD 3 Terms. Някои части от кодекса също имат лицензионни ограничения по unRAR.
Адрес за изтегляне:Входът към хиперлинк е видим., стъпките за изтегляне и инсталация са пропуснати (тази статия е инсталирана в директорията :D:\360Downloads)
Параметрите на командния ред на 7-Zip са следните:
7-Zip 21.07 (x64) : Copyright (c) 1999-2021 Игор Павлов : 2021-12-26
Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...] [@listfile]
<Commands> a : Добавете файлове към архива b : Бенчмарк d : Изтрийте файлове от архива e : Извличане на файлове от архива (без използване на имена на директории) h : Изчисляване на хеш стойности за файлове i : Покажете информация за поддържани формати L : Списък със съдържанието на архива rn : Преименувам файловете в архива t : Тестова целостност на архива u : Актуализирайте файловете за архивиране x : eXtract файлове с пълни пътища
<Switches> -- : Стоп превключватели и @listfile парсинг -ai[r[-|0]]{@listfile|! wildcard} : Включи архиви -ax[r[-|0]]{@listfile|! wildcard} : eXclude archives -ao{a|s|t|u} : set Overwrite mode -an : деактивирай archive_name поле -bb[0-3] : задайте изходно лог ниво -bd : деактивирай индикатора за напредък -bs{o|e|p}{0|1|2} : задайте изходния поток за линия изход/грешка/прогрес -bt : покажи статистика за времето за изпълнение -i[r[-|0]]{@listfile|! wildcard} : Включи имена на файлове -m{Parameters} : метод на компресия на множества -mmt[N] : зададен брой процесорни нишки -mx[N] : задайте ниво на компресия: -mx1 (най-бърз) ... -mx9 (ултра) -o{Directory} : set Output директория -p{Password} : set Password -r[-|0] : Recurse поддиректории за търсене на имена -sa{a|e|s} : set Архивен режим на име -scc{UTF-8| WIN| DOS} : set charset за вход/изход на конзолата -scs{UTF-8| UTF-16LE| UTF-16BE| WIN| DOS| {id}} : set charset за файлове със списъци -scrc[CRC32| CRC64| SHA1| SHA256|*] : задайте хеш функция за x, e, h команди -sdel : изтрий файловете след компресия -seml[.] : изпрати архива по имейл -sfx[{name}] : Създаване на SFX архив -si[{name}] : четене на данни от stdin -slp : настрой режим Големи страници -slt : покажи техническа информация за команда l (Списък) -SNH : съхранявайте твърди връзки като връзки -snl : съхранявай символни връзки като връзки -sni : съхраняване на информация за сигурността на NT -sns[-] : съхраняване на алтернативни потоци от NTFS -so : Записвайте данни в stdout -spd : деактивирайте съвпадението на джокера за имена на файлове -spe : премахване на дублирането на root folder за команда extract -spf : използвайте напълно квалифицирани файлове пътища -ssc[-] : задайте режим на чувствителен случай -SSE : Спри създаването на архив, ако не може да отвори някакъв входен файл -ssp : не променяйте времето на последен достъп на изходните файлове по време на архивиране -SSW : компресиране на споделени файлове -stl : задайте времеви печат на архива от най-скоро модифицирания файл -stm{HexMask} : задайте маска за афинитет на CPU thread (шестнадесетично число) -stx{Type} : изключване на архивния тип -t{Type} : Тип архив -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Опции за обновяване -v{Size}[b|k|m|g] : Създаване на обеми -w[{path}] : присвояване на директория на работата. Празен път означава временна директория -x[r[-|0]]{@listfile|! wildcard} : eXclude filenames -y : приемем, че Да при всички заявки Компресиране на папки с 7z
Командата е следната:
Поради добавянето на параметъра -sdel, папката zh автоматично се изтрива, когато компресията приключи. Нека тестваме компресирания файл с WinRAR, както е показано по-долу:
Разархивирайте файла с 7z
Командата е следната:
Декомпресията се завършва, както е показано на фигурата по-долу:
.NET/C# извиква 7z декомпресия през командния ред
Как да използвам .NET/C# код, за да изпълня командния ред? Кодът е следният:
(Край)
|