Dopo aver visto come creare dei file zip vediamo come poter effettuare la lettura e lo spacchettamento di un file zip.
Ipotizziamo di avere un file zip sotto la directory download, vogliamo leggerlo e scompattarlo nella directory dove lanciamo la routine go.
1 2 3 4 |
reader, err := zip.OpenReader("C:\\Users\\Valerio\\Downloads\\rdt.zip") if err != nil { fmt.Println("Errore: ", err) } |
A questo punto creiamo una directory rdt con permessi di scrittura
1 2 3 4 |
err = os.Mkdir("rdt", 0755) if err != nil { fmt.Println("Errore: ", err) } |
Infine scorriamo l’elenco dei file presenti all’interno dello zip, li leggiamo e li copiamo all’interno della directory appena generata
1 2 3 4 5 6 7 |
fileszip := reader.File for _, fil := range fileszip { singlereader, _ := fil.Open() newpath := filepath.Join("rdt", fil.Name) newfile, _ := os.Create(newpath) io.Copy(bufio.NewWriter(newfile), singlereader) } |
In questo esempio di nuovo vediamo il pakage filepath che ci permette di costruire dei percorsi sul file system con la function Join che concatena i percorsi ricevuti.
Alla prossima