Как правильно удалить папку после разархивации?

В языке программирования Go для удаления папки после разархивации можно использовать стандартный пакет "os" и его функцию RemoveAll. Давайте рассмотрим пример кода:

package main

import (
	"archive/zip"
	"io"
	"os"
)

func main() {
	zipFile := "path/to/your/archive.zip"
	extractTo := "path/to/your/destination/folder"

	err := unzip(zipFile, extractTo)
	if err != nil {
		panic(err)
	}

	err = os.RemoveAll(extractTo)
	if err != nil {
		panic(err)
	}
}

// разархивация файла
func unzip(src, dest string) error {
	r, err := zip.OpenReader(src)
	if err != nil {
		return err
	}
	defer r.Close()

	os.MkdirAll(dest, 0755)

	for _, f := range r.File {
		rc, err := f.Open()
		if err != nil {
			return err
		}

		path := filepath.Join(dest, f.Name)

		if f.FileInfo().IsDir() {
			os.MkdirAll(path, f.Mode())
		} else {
			f, err := os.OpenFile(
				path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, f.Mode())
			if err != nil {
				return err
			}
			_, err = io.Copy(f, rc)

			f.Close()
			if err != nil {
				return err
			}
		}
		rc.Close()
	}
	return nil
}

В этом примере мы передаем путь к архивному файлу (zipFile) и путь, куда нужно разархивировать файлы (extractTo). Мы вызываем функцию unzip, которая открывает архив, создает папку назначения (если не существует) и извлекает содержимое архивного файла в эту папку.

После разархивации мы используем функцию os.RemoveAll, чтобы удалить папку назначения (extractTo) и все ее подпапки и файлы.

Обратите внимание, что функция os.RemoveAll удаляет указанную папку рекурсивно, то есть она также удаляет все вложенные папки и файлы. Поэтому будьте осторожны при использовании этой функции.

Если произойдет ошибка при разархивации или удалении папки, код будет вызывать панику (panic). Вы можете изменить это поведение, добавив обработку ошибок по своему усмотрению.