Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 11568|Отговор: 2

[Източник] [Истински бой]. NET/C# извиква 7z декомпресия през командния ред

[Копирай линк]
Публикувано на 2022-4-30 17:46:24 | | | |
Изисквания: Проектът трябва да декомпресира или компресира качения компресиран пакет, което обикновено може да се постигне чрез WinRAR, но трябва да използваме програмни методи за реализация и е невъзможно ръчно да се декомпресира файлът. Тъй като WinRAR е таксуем, можем да използваме .NET/C#, за да извикваме 7z, като изпълняваме операции с команден ред, за да задоволим нуждите си.

Преглед:

.net/c#, за да получиш информацията за файла в zip пакета
https://www.itsvse.com/thread-4831-1-1.html

Java encapsulation zip unzip метод
https://www.itsvse.com/thread-7750-1-1.html

C# използва ICSharpCode.SharpZipLib.dll за компресиране и декомпресиране на файлове/папки
https://www.itsvse.com/thread-3726-1-1.html
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# код, за да изпълня командния ред? Кодът е следният:

(Край)




Предишен:65 сайта за изтегляне на изходен код
Следващ:[Истински бой]. NET/C# задава време за тайм-аут за даден метод
 Хазяин| Публикувано на 30.04.2022 17:49:29 |
e Unzip файлове (всички компресирани файлове се декомпресират в една и съща директория, без да се запазва оригиналната структура на директорията)
# Разархивирай файла в текущата директория
7z e archive.zip
# Разархивирай файла в директорията e:\testunzip
7z e archive.zip -oe:\testunzip
# Разархивирайте всички PNG файлове в директорията e:\testunzip
7z e archive.zip -oe:\testunzip *.png -r

x Разархивирайте файла (запазите оригиналната структура на директорията)
# Разархивирай файла в текущата директория
7z x archive.zip
# Разархивирай файла в директорията e:\testunzip
7z x archive.zip -oe:\testunzip
# Разархивирайте всички PNG файлове в директорията e:\testunzip
7z x archive.zip -oe:\testunzip *.png -r

l Преглед на списък с всички файлове в пакета
7z l archive.zip

-ao Как се обработват файлове със същото име
# -aoa презаписва файла със същото име
7z x archive.zip -aoa
# -aos Пропусни файла със същото име
# -Ау преименува архива със същото име
# -aot преименува файловете в извлечената директория със същото име

d Изтрийте файловете вътре в пакета
# Изтрий всички файлове с суфикса .bak в archive.zip
7z d archive.zip *.bak -r

RN преименува файла вътре в пакета
# Преименувай файла 1.png 1_new.png 2.png папка\2_new.png
7z сега archive.7z 1.png 1_new.png 2.png папка 2_new.png
Публикувано на 2022-4-30 20:05:18 |
Научи се да учиш.
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com