Trabalhar com arquivos e diretórios é uma tarefa essencial para aplicativos que precisam armazenar e recuperar dados. Go fornece o pacote filepath para operações de caminho de arquivo independente de plataforma. O pacote inclui funções para manipular caminhos de arquivos e é compatível com Windows, Linux e macOS.
As funções incluídas no filepath podem unir, dividir e limpar caminhos de arquivo para garantir que sejam válidos. O pacote também possui funções para percorrer diretórios e procurar arquivos.
Árvores de diretório ambulante
O Andar função do caminho de arquivo O pacote fornece funcionalidade para percorrer uma árvore de diretórios e percorrer arquivos e diretórios de maneira pré-ordenada. Ele visitará recursivamente todos os diretórios abaixo da raiz especificada. A função Walk leva em um diretório raiz e uma função que leva no caminho, instância de informações de arquivo e uma instância de erro.
pacote principal
importar (
"fmt"
"caminho/caminho do arquivo"
"os"
)funçãoprincipal() {
// Define o diretório raiz para iniciar a caminhada
raiz := "."// Usa a função Walk para percorrer a árvore de diretórios
err := caminho do arquivo. Caminhar (raiz, função(caminho corda, informações os. FileInfo, erro de erro)erro {
se erro != nada {
retornar errar
}// Imprime o nome de cada arquivo ou diretório
fmt. Println (caminho)
retornarnada
})
// Verifica se há erros
se erro != nada {
fmt. Imprimirf("Erro ao percorrer a árvore de diretórios: %v\n", erro)
}
}
Este programa define o diretório raiz como o diretório de trabalho atual. O principal A função percorre os diretórios no diretório raiz e imprime os nomes dos arquivos.
Correspondência de arquivos com correspondência de padrão
Você pode usar o Corresponder função para corresponder nomes de arquivos a um padrão. A sintaxe do padrão é baseada no comum sintaxe curinga de arquivo, que usa metacaracteres, conhecidos como padrões glob em ambientes Unix.
pacote principal
importar (
"fmt"
"caminho/caminho do arquivo"
)funçãoprincipal() {
// Define o padrão a ser correspondido
padrão := "*.TXT"// Usa a função Match para combinar o padrão nos arquivos
match, err := filepath. Correspondência (padrão, "arquivo.txt")se erro != nada {
fmt. Imprimirf("Erro ao combinar padrão: %v\n", erro)
retornar
}
// Imprime o resultado da partida
se corresponder {
fmt. Imprimirln("O arquivo corresponde ao padrão.")
} outro {
fmt. Imprimirln("O arquivo não corresponde ao padrão.")
}
}
O principal função corresponde a um nome de arquivo com o *.TXT padrão e imprime uma string dependendo do resultado a declaração condicional.
Limpando caminhos com a função de limpeza
O Limpar A função pega um caminho de arquivo e retorna uma versão limpa de um caminho removendo separadores desnecessários e alterações de diretório, como . (diretório atual) e .. (diretório pai) segmentos.
A limpeza de caminhos de arquivo é útil, pois ajuda a evitar erros se um caminho contiver separadores redundantes ou segmentos inválidos ou construir caminhos independentes do diretório de trabalho atual.
pacote principal
importar (
"fmt"
"caminho/caminho do arquivo"
)funçãoprincipal() {
// Cria um caminho com separadores redundantes e segmentos inválidos
caminho := "/foo/bar//baz/.././qux/"// Limpa o caminho
cleanPath := caminho do arquivo. Limpar (caminho)
// Imprime os caminhos de arquivo originais e limpos
fmt. Imprimirln("Caminho original:", caminho)
fmt. Imprimirln("Caminho limpo:", caminho limpo)
}
O caminho variável é o caminho inicial do arquivo e o Limpar função limpa o caminho variável e retorna o caminho do arquivo limpo. O principal A função imprime os caminhos de arquivo iniciais e limpos.
Juntando e dividindo caminhos de arquivos em Go
O Juntar e Dividir funções fornecem funcionalidade para unir e dividir caminhos de arquivo.
A função Join aceita qualquer número de elementos de caminho. Ele retorna uma única string de caminho de arquivo que resulta da concatenação desses elementos usando o separador de caminho apropriado para o sistema operacional. O Juntar A função é útil para construir caminhos de arquivos independentes do sistema de arquivos subjacente.
pacote principal
importar (
"fmt"
"caminho/caminho do arquivo"
)funçãoprincipal() {
// Define quatro caminhos de arquivo para a operação de junção
caminho1 := "pasta1"
caminho2 := "pasta2"
caminho3 := "subpasta1"
path4 := "exemplo.txt"// Une os quatro caminhos de arquivo em um único caminho
joinPath := caminho do arquivo. Junção (caminho1, caminho2, caminho3, caminho4)
// Imprime o caminho do arquivo unificado
fmt. Imprimirln("Caminho conectado:", joinPath)
}
O caminho1, caminho2, e caminho3 variáveis são nomes de pastas, e o path4 variável é um nome de arquivo. O Juntar A função recebe os nomes das variáveis de caminho e retorna o caminho do arquivo concatenado. O principal A função imprime o caminho do arquivo concatenado para o console com o fmt pacote.
O Dividir A função recebe uma string de caminho e retorna o diretório do caminho e os componentes do nome do arquivo. O Dividir A função é útil para extrair nomes de arquivo ou determinar o diretório pai de um arquivo.
pacote principal
importar (
"fmt"
"caminho/caminho do arquivo"
)
funçãoprincipal() {
// Define o caminho do arquivo para a operação de divisão
caminho do arquivo := "/home/user/documents/example.txt"
// Use a função Split para dividir o caminho do arquivo
// em seu diretório e componentes de arquivo
dir, arquivo := caminho do arquivo. Dividir (filePath)
// Imprime o diretório e os componentes do arquivo
fmt. Imprimirln("Diretório:", direção)
fmt. Imprimirln("Arquivo:", arquivo)
}
O caminho de arquivo variável é o caminho do arquivo original e o Dividir função leva em caminho de arquivo variável e retorna o diretório e os nomes dos arquivos como strings. O principal A função imprime o diretório e os nomes dos arquivos no console.
Você pode manipular arquivos de texto com Go
Juntamente com a funcionalidade do sistema de arquivos, o Go fornece pacotes para ajudá-lo a trabalhar com vários tipos de arquivos, incluindo arquivos de texto.
Você pode usar o bufio pacote para operações de entrada e saída em buffer em arquivos de texto e o os pacote para criação de arquivos, entre outras operações.