Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 11568|Jawab: 2

[Sumber] [Pertempuran aktual]. NET/C# memanggil dekompresi 7z melalui baris perintah

[Salin tautan]
Dipaparkan pada 2022-4-30 17:46:24 | | | |
Persyaratan: Proyek perlu mendekompresi atau mengompres paket terkompresi yang diunggah, yang umumnya dapat dicapai melalui WinRAR, tetapi kita perlu menggunakan metode pemrograman untuk mengimplementasikannya, dan tidak mungkin untuk mendekompresi file secara manual. Karena WinRAR dikenakan biaya, kita dapat menggunakan .NET/C# untuk memanggil 7z dengan melakukan operasi baris perintah untuk memenuhi kebutuhan kita.

Resensi:

.net/c# untuk mendapatkan informasi file dalam paket zip
https://www.itsvse.com/thread-4831-1-1.html

Metode zip unzip enkapsulasi Java
https://www.itsvse.com/thread-7750-1-1.html

C# menggunakan ICSharpCode.SharpZipLib.dll untuk mengompres dan mendekompresi file/folder
https://www.itsvse.com/thread-3726-1-1.html
7-Zip adalah pengarsip file dengan rasio kompresi tinggi. 7-Zip adalah open-source dan freeware. Sebagian besar kode dilisensikan di bawah GNU LGPL. Beberapa bagian dari kode dilisensikan di bawah Ketentuan BSD 3. Beberapa bagian kode juga memiliki batasan lisensi unRAR.

Alamat Unduhan:Login hyperlink terlihat., langkah-langkah pengunduhan dan penginstalan dihilangkan (artikel ini diinstal di bawah direktori :D:\360Downloads)

Parameter baris perintah 7-Zip adalah sebagai berikut:


7-Zip 21.07 (x64) : Hak Cipta (c) 1999-2021 Igor Pavlov : 2021-12-26

Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...] [@listfile]

<Commands>
  a : Tambahkan file ke arsip
  b : Tolok ukur
  d : Hapus file dari arsip
  e : Ekstrak file dari arsip (tanpa menggunakan nama direktori)
  h : Menghitung nilai hash untuk file
  i : Tampilkan informasi tentang format yang didukung
  l : Daftar isi arsip
  rn : Ganti nama file dalam arsip
  t : Uji integritas arsip
  u : Perbarui file ke arsip
  x : eXtract file dengan jalur penuh

<Switches>
  -- : Sakelar berhenti dan penguraian @listfile
  -ai[r[-|0]]{@listfile|! wildcard} : Sertakan arsip
  -ax[r[-|0]]{@listfile|! wildcard} : arsip eXclude
  -ao{a|s|t|u} : atur mode Timpa
  -an : nonaktifkan bidang archive_name
  -bb[0-3] : mengatur level log keluaran
  -bd : nonaktifkan indikator kemajuan
  -bs{o|e|p}{0|1|2} : mengatur aliran keluaran untuk garis keluaran/kesalahan/kemajuan
  -bt : tampilkan statistik waktu eksekusi
  -i[r[-|0]]{@listfile|! wildcard} : Sertakan nama file
  -m{Parameter} : mengatur Metode kompresi
    -mmt[N] : mengatur jumlah utas CPU
    -mx[N] : atur tingkat kompresi: -mx1 (tercepat) ... -mx9 (ultra)
  -o{Direktori} : atur direktori Output
  -p{Password} : atur Kata Sandi
  -r[-|0] : Recurse subdirektori untuk pencarian nama
  -sa{a|e|s} : atur mode Nama arsip
  -scc{UTF-8| MEMENANG| DOS} : atur charset untuk input/output konsol
  -scs{UTF-8| UTF-16LE| UTF-16BE| MEMENANG| DOS| {id}} : atur charset untuk file daftar
  -scrc[CRC32| CRC64| SHA1| SHA256|*] : atur fungsi hash untuk perintah x, e, h
  -sdel : hapus file setelah kompresi
  -seml[.] : kirim arsip melalui email
  -sfx[{name}] : Buat arsip SFX
  -si[{name}] : membaca data dari stdin
  -slp : atur mode Halaman Besar
  -slt : tampilkan informasi teknis untuk perintah l (Daftar)
  -snh : simpan tautan keras sebagai tautan
  -snl : menyimpan tautan simbolis sebagai tautan
  -sni : menyimpan informasi keamanan NT
  -sns[-] : simpan aliran alternatif NTFS
  -Jadi: Tulis data ke Stdout
  -spd : nonaktifkan pencocokan wildcard untuk nama file
  -spe : Hilangkan duplikasi folder root untuk perintah ekstrak
  -spf : gunakan jalur file yang sepenuhnya memenuhi syarat
  -ssc[-] : atur mode kasus sensitif
  -sse : hentikan pembuatan arsip, jika tidak dapat membuka beberapa file input
  -ssp : jangan ubah Waktu Akses Terakhir file sumber saat pengarsipan
  -ssw : kompres file bersama
  -stl : atur stempel waktu arsip dari file yang terakhir dimodifikasi
  -stm{HexMask} : atur topeng afinitas utas CPU (nomor heksadesimal)
  -stx{Type} : kecualikan jenis arsip
  -t{Type} : Atur jenis arsip
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Opsi pembaruan
  -v{Size}[b|k|m|g] : Membuat volume
  -w[{path}] : tetapkan direktori Kerja. Jalur kosong berarti direktori sementara
  -x[r[-|0]]{@listfile|! wildcard} : eXclude nama file
  -y : asumsikan Ya pada semua kueri
Kompres folder dengan 7z

Perintahnya adalah sebagai berikut:


Karena penambahan parameter -sdel, folder zh secara otomatis dihapus saat kompresi selesai. Mari kita uji file terkompresi menggunakan WinRAR, seperti yang ditunjukkan di bawah ini:



Unzip file dengan 7z

Perintahnya adalah sebagai berikut:


Dekompresi selesai seperti yang ditunjukkan pada gambar di bawah ini:



.NET/C# memanggil dekompresi 7z melalui baris perintah

Bagaimana cara menggunakan kode .NET/C# untuk mengeksekusi baris perintah? Kodenya adalah sebagai berikut:

(Akhir)




Mantan:65 situs unduhan kode sumber
Depan:[Pertempuran aktual]. NET/C# menetapkan waktu tunggu untuk metode
 Tuan tanah| Dipaparkan pada 2022-4-30 17:49:29 |
e Unzip file (semua file terkompresi didekompresi ke direktori yang sama, tanpa mempertahankan struktur direktori asli)
# Unzip file ke direktori saat ini
7z e archive.zip
# Unzip file ke direktori e:\testunzip
7z e archive.zip -oe:\testunzip
# Unzip semua file PNG ke direktori e:\testunzip
7z e archive.zip -oe:\testunzip *.png -r

x Unzip file (pertahankan struktur direktori asli)
# Unzip file ke direktori saat ini
7z x archive.zip
# Unzip file ke direktori e:\testunzip
7z x archive.zip -oe:\testunzip
# Unzip semua file PNG ke direktori e:\testunzip
7z x archive.zip -oe:\testunzip *.png -r

l Lihat daftar semua file dalam paket
7z l archive.zip

-ao Bagaimana file dengan nama yang sama ditangani
# -aoa menimpa file dengan nama yang sama
7z x archive.zip -aoa
# -aos Lewati file dengan nama yang sama
# -aou mengganti nama arsip dengan nama yang sama
# -aot mengganti nama file di direktori yang diekstrak dengan nama yang sama

d Hapus file di dalam paket
# Hapus semua file dengan akhiran .bak di archive.zip
7z d archive.zip *.bak -r

rn mengganti nama file di dalam paket
# Ganti nama file 1.png 1_new.png 2.png folder\2_new.png
Folder archive.7z 1.png 1_new.png 2.png 7z rn\2_new.png
Dipaparkan pada 2022-4-30 20:05:18 |
Belajar belajar.
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com