Tādi lasītāji kā jūs palīdz atbalstīt MUO. Veicot pirkumu, izmantojot saites mūsu vietnē, mēs varam nopelnīt filiāles komisiju. Lasīt vairāk.

Arhīvi apvieno vairākus failus vienā formātā, parasti zip, tar vai rar. Arhīva failos var izmantot arī saspiešanu, lai samazinātu kopējo faila lielumu.

Varat izmantot arhīvus, lai izplatītu programmatūru un datus, tostarp tīmekļa lapas. Varat arī arhivēt savu lietojumprogrammu ar visiem tās failiem un atkarībām, lai lietotāji varētu lejupielādēt un instalēt.

Go arhīvu pakotne ļauj izveidot un izvilkt arhīvus darvas un zip formātos.

Go's arhīva pakotne

Go nodrošina arhīvs pakotnes darbam ar dažādiem arhīvu formātiem. Jūs varat izmantot rāvējslēdzējs un darva pakotnes, lai izveidotu, lasītu un rakstītu arhīva failus šajos formātos. Abas pakotnes atbalsta dažādus saspiešanas algoritmus, izmantojot viegli lietojamu API.

Tālāk ir norādīts, kā savos Go failos varat importēt zip un tar pakotnes.

imports (
"arhīvs/zip"
"arhīvs/darva"
)

Pēc pakotņu importēšanas varat tās izmantot, lai izveidotu un apstrādātu arhīva failus.

instagram viewer

Failu izveide un pievienošana Tar arhīviem

The darva pakete darbojas ar darvu tar un tar.gz formātu arhīvi, ieskaitot atbalstu failu lasīšanai un rakstīšanai ar PAX paplašinātajām galvenēm.

Darvas iepakojums nodrošina a JaunaisRakstnieks funkcija jaunu tar arhīvu izveidei. NewWriter uzņem an io. rakstnieks saskarnes gadījums, kas var būt fails vai atmiņas buferis un atgriež rādītāju uz darva. rakstnieks struktūra.

iepakojums galvenais

imports (
"arhīvs/darva"
"os"
)

funcgalvenais() {
// Izveidojiet jaunu failu
fails, _ := os. Izveidot("myarchive.tar")
atlikt failu. Aizvērt ()

// Izveidojiet jaunu darvas arhīvu
tarWriter := darva. NewWriter (fails)
atlikt tarWriter. Aizvērt ()
}

The Izveidot funkcija os pakotne izveido jaunu tar failu. The darva. JaunaisRakstnieks funkcija uzņem failu un izveido jaunu arhīvu.

Jūs varat pievienot failus tar arhīvam, izmantojot WriteHeader un Rakstiet funkcijas. Funkcija WriteHeader aizņem a darva. Virsraksts struktūra kā arguments. Tas satur faila metadatus, piemēram, faila nosaukumu, lielumu un atļaujas bitus. Funkcija Write ieraksta faila saturu arhīvā.

imports (
"arhīvs/darva"
"fmt"
"io"
"baļķis"
"os"
)

funcgalvenais() {
// Izveidojiet jaunu failu
fails, _ := os. Izveidot("myarchive.tar")
fails, _ = os. Izveidot("ziņa.txt")
atlikt failu. Aizvērt ()

// Izveidojiet jaunu darvas arhīvu
tarWriter := darva. NewWriter (fails)
atlikt tarWriter. Aizvērt ()

// Pievienojiet failu arhīvam
fileToAdd, _ := os. Atvērt("fails1.txt")
atlikt Pievienot failu. Aizvērt ()
fileInfo, _ := fileToAdd. Stat()
galvene, _ := darva. FileInfoHeader (fileInfo, "")
tarWriter. WriteHeader (galvene)
_, _ = io. Kopēt (tarWriter, fileToAdd)
fmt. Println("TAR arhīva darbība pabeigta")
}

Programma izveido jaunus darvas un teksta failus ar Izveidot funkcija os pakotni un jaunu darvas arhīvu ar JaunaisRakstnieks, pirms faila pievienošanas arhīvam.

The Atvērt funkcija atver failu, ko pievienot arhīvam. Ņemiet vērā, ka jums būs nepieciešams fails ar nosaukumu fails1.txt savā darba direktorijā, lai veiksmīgi palaistu šo programmu.

Jūs varat izmantot Stat faila instances funkcija, lai iegūtu metadatus, kas nepieciešami tar galvenei. Nododiet tā rezultātu FileInfoHeader, pēc tam nosūtiet šo rezultātu uz WriteHeader funkcija, lai iestatītu tar failu. Visbeidzot, kopējiet failu arhīvā, izmantojot io. Kopēt.

Failu izvilkšana no Tar arhīviem

Jūs varat izmantot NewReader funkcija, lai lasītu tar arhīva faila saturu. Funkcija NewReader uzņem an io. Lasītājs interfeiss, kas var būt fails vai atmiņas buferis. Tas atgriež rādītāju uz a darva. Lasītājs struktūra.

imports (
"arhīvs/darva"
"io"
"os"
)

funcgalvenais() {
// Atveriet darvas arhīvu
fails, _ := os. Atvērt("myarchive.tar")
atlikt failu. Aizvērt ()

// Izveidojiet jaunu darvas lasītāju
tarReader := darva. NewReader (fails)

// Atkārtojiet failus arhīvā
priekš {
galvene, kļūda := tarReader. Nākamais()

ja kļūda == io. EOF {
pārtraukums
}

// Izvelciet failu
outFile, _ := os. Izveidot (galvene. Vārds)
atlikt outFile. Aizvērt ()
_, _ = io. Kopēt (outFile, tarReader)
}
}

The bezgalīgs cilpai šķērso tar lasītāja gadījumu un izvelk failus, kopējot katru failu ar io iepakojums Kopēt funkciju.

Failu izveide un pievienošana ZIP arhīviem

Varat izveidot jaunu zip arhīvu, izmantojot JaunaisRakstnieks funkcija rāvējslēdzējs iepakojums. Funkcija NewWriter uzņem faila gadījumu un atgriež zip rakstītāju.

imports (
"arhīvs/zip"
"os"
)

funcgalvenais() {
// Izveidojiet jaunu failu
fails, kļūda := os. Izveidot("archive.zip")

ja kļūda! = nulle {
panika(kļūda)
}

atlikt failu. Aizvērt ()

// Izveidojiet jaunu zip rakstītāju
zipWriter := zip. NewWriter (fails)
atlikt zipWriter. Aizvērt ()
}

The zipWriter mainīgais uzglabā jaunu rakstnieks gadījumu, ko atgriež NewWriter.

Varat pievienot failus saviem zip arhīviem, izmantojot Izveidot Writer instances funkcija. Funkcija Izveidot uzņem faila nosaukumu. Varat arī izmantot Rakstiet zip faila instances funkcija, lai rakstītu datus failos zip arhīvos.

imports (
"arhīvs/zip"
"os"
)

funcgalvenais() {
// Izveidot jaunus failus
fails, kļūda := os. Izveidot("archive.zip")
fails, err = os. Izveidot("fails1.txt")
fails, err = os. Izveidot("fails2.txt")

ja kļūda! = nulle {
panika(kļūda)
}

atlikt failu. Aizvērt ()

// Izveidojiet jaunu zip rakstītāju
zipWriter := zip. NewWriter (fails)
atlikt zipWriter. Aizvērt ()

// Pievienot failus arhīvam
file1, err := zipWriter. Izveidot("fails1.txt")

ja kļūda! = nulle {
panika(kļūda)
}

file2, err := zipWriter. Izveidot("fails2.txt")

ja kļūda! = nulle {
panika(kļūda)
}

// Ierakstiet datus failos arhīvā
file1.Write([]baits("Sveika pasaule!"))
file2.Write([]baits("Ardievu, pasaule!"))
fmt. Println("zip arhivēšanas darbība pabeigta")
}

Galvenā funkcija sākas, izmantojot Izveidot lai izveidotu jaunu zip failu un divus teksta failus. Pēc tam tiek izveidoti divi rakstītāji, lai abus teksta failus pievienotu arhīvam. The Rakstiet katra faila instances funkcija raksta ziņojumus katram arhīva failam.

Failu izvilkšana no ZIP arhīviem

Esošu zip failu var izvilkt, izlasot to ar OpenReader funkciju, pēc tam pārlūkojiet tās saturu un kopējiet failus, izmantojot io iepakojums.

imports (
"arhīvs/zip"
"fmt"
"io"
"os"
)

funcgalvenais() {
// Atveriet arhīvu
zipReader, err := zip. OpenReader("archive.zip")

ja kļūda! = nulle {
panika(kļūda)
}

atlikt zipReader. Aizvērt ()

// Izvilkt failus no arhīva
priekš _, fails := diapazons zipReader. Fails {
zippedFile, err := fails. Atvērt ()

ja kļūda! = nulle {
panika(kļūda)
}

atlikt zippedFile. Aizvērt ()

// Izveidojiet jaunu failu ar tādu pašu nosaukumu kā zip failam
ExtractedFile, err := os. Izveidot (failu. Vārds)

ja kļūda! = nulle {
panika(kļūda)
}

atlikt izvilkts fails. Aizvērt ()

// Kopējiet datus no ZIP faila uz jauno failu
_, err = io. Kopēt (extractedFile, zippedFile)

ja kļūda! = nulle {
panika(kļūda)
}

fmt. Printf("Izvilkts %s\n", fails. Vārds)
}
}

The OpenReader funkcija nolasa zip arhīvus. The OpenReader funkcija pieņem zip faila nosaukumu kā argumentu un atgriež ZIP faila lasītāja gadījumu. The diapazonam cilpa šķērso lasītāja instancē esošo failu saturu. Tas izveido jaunu failu ar tādu pašu nosaukumu kā sākotnējam failam un kopē izvilktā faila saturu jaunajā failā, izmantojot io. Kopēt funkciju.

Izsaiņojiet manuāli vai programmatiski — tas ir jūsu ziņā

Failu programmatiska izsaiņošana ir ērta, ja jums ir daudz failu vai arhīvu, ko atspiest. Iespējams, jūs arī integrējat arhīva funkcionalitāti savā galvenajā lietotnē.

Citos gadījumos jums var būt labāk izmantot esošās lietojumprogrammas. Varat izmantot iebūvētās vai trešo pušu programmas, lai izsaiņotu arhīvus operētājsistēmās Windows, macOS un Linux.