"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como zíper arquivos dentro de uma pasta sem incluir a pasta raiz no arquivo?

Como zíper arquivos dentro de uma pasta sem incluir a pasta raiz no arquivo?

Postado em 2025-02-26
Navegar:155

How to Zip Files Inside a Folder Without Including the Root Folder in the Archive?

zipando o conteúdo dentro de uma pasta sem incluir a pasta root

Problem: zipping arquivos em uma pasta resulta em uma estrutura extraída que inclui a raiz Pasta, enquanto o resultado desejado é extrair os arquivos sem a pasta root.

código Tentativa:

O código a seguir é uma tentativa de zípar da estrutura do diretório:

func Zipit(source, target string) error {
    zipfile, err := os.Create(target)
    ...
    header.Name = filepath.Join(baseDir, strings.TrimPrefix(path, source))
    ...
}

Solução de problemas:

No código fornecido, o problema está na linha em que o baseado está sendo adicionado ao cabeçalho.name. Para excluir a pasta raiz da estrutura extraída, remova o baseado do nome do arquivo. Nome = filepath.join (baseado, strings.triprefix (path, origem))

com: header.name = strings.triprefix (path, fonte)

abordagens alternativas:
header.Name = filepath.Join(baseDir, strings.TrimPrefix(path, source))

Em vez de modificar manualmente o nome do cabeçalho, você também pode usar a seguinte abordagem alternativa para excluir a pasta raiz durante Extração:

header.Name = strings.TrimPrefix(path, source)
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3