Werken met bestanden en mappen is een essentiële taak voor toepassingen die gegevens moeten opslaan en ophalen. Go biedt het bestandspadpakket voor platformonafhankelijke bestandspadbewerkingen. Het pakket bevat functies om bestandspaden te manipuleren en is compatibel met Windows, Linux en macOS.
De functies die bestandspad bevat, kunnen bestandspaden samenvoegen, splitsen en opschonen om ervoor te zorgen dat ze geldig zijn. Het pakket heeft ook functies voor het doorbladeren van mappen en het zoeken naar bestanden.
Wandelgids Bomen
De Wandeling functie van de bestandspad pakket biedt functionaliteit voor het lopen door een mappenboom en het doorlopen van bestanden en mappen op een pre-order manier. Het zal recursief alle mappen onder de gegeven root bezoeken. De Walk-functie neemt een hoofdmap en een functie die het pad, de bestandsinformatie-instantie en een foutinstantie in beslag neemt.
pakket voornaamst
importeren (
"fmt"
"pad/bestandspad"
"os"
)funcvoornaamst() {
// Definieert de hoofdmap om de wandeling te starten
wortel := "."// Gebruikt de Walk-functie om door de directorystructuur te lopen
err := bestandspad. Lopen (wortel, func(pad snaar, info os. FileInfo, fout fout)fout {
als fout!= nihil {
opbrengst fout
}// Drukt de naam van elk bestand of elke map af
fmt. Println (pad)
opbrengstnihil
})
// Controleert op fouten
als fout!= nihil {
fmt. Afdrukkenf("Fout bij het doorlopen van de mapstructuur: %v\n", fout)
}
}
Dit programma definieert de hoofdmap als de huidige werkmap. De voornaamst functie doorloopt de mappen in de hoofdmap en drukt de namen van de bestanden af.
Overeenkomende bestanden met patroonafstemming
U kunt de Overeenkomst functie om bestandsnamen te vergelijken met een patroon. De patroonsyntaxis is gebaseerd op de common file wildcard syntaxis, die metatekens gebruikt, ook wel glob-patronen genoemd in Unix-omgevingen.
pakket voornaamst
importeren (
"fmt"
"pad/bestandspad"
)funcvoornaamst() {
// Definieert het overeenkomende patroon
patroon := "*.tekst"// Gebruikt de Match-functie om het patroon op bestanden te matchen
match, err := bestandspad. Match (patroon, "bestand.txt")als fout!= nihil {
fmt. Afdrukkenf("Fout bij overeenkomend patroon: %v\n", fout)
opbrengst
}
// Drukt het resultaat van de wedstrijd af
als overeenkomst {
fmt. Println("Bestand komt overeen met patroon.")
} anders {
fmt. Println("Bestand komt niet overeen met patroon.")
}
}
De voornaamst functie matcht een bestandsnaam met de *.tekst patroon en drukt een tekenreeks af, afhankelijk van het resultaat van de voorwaardelijke verklaring.
Paden reinigen met de Clean-functie
De Schoon functie neemt een bestandspad op en retourneert een opgeschoonde versie van een pad door onnodige scheidingstekens en mapwijzigingen te verwijderen, zoals . (huidige map) en .. (bovenliggende map) segmenten.
Het opschonen van bestandspaden is handig omdat het fouten helpt voorkomen als een pad redundante scheidingstekens of ongeldige segmenten bevat, of paden maakt die onafhankelijk zijn van de huidige werkmap.
pakket voornaamst
importeren (
"fmt"
"pad/bestandspad"
)funcvoornaamst() {
// Creëert een pad met redundante scheidingstekens en ongeldige segmenten
pad := "/foo/bar//baz/.././qux/"// Reinigt het pad
cleanPath := bestandspad. Schoon (pad)
// Drukt de originele en opgeschoonde bestandspaden af
fmt. Println("Oorspronkelijk pad:", pad)
fmt. Println("Opgeschoond pad:", schoonPath)
}
De pad variabele is het initiële bestandspad en de Schoon functie reinigt de pad variabele en retourneert het opgeschoonde bestandspad. De voornaamst functie drukt de initiële en schone bestandspaden af.
Bestandspaden samenvoegen en splitsen in Go
De Meedoen En Splitsen functies bieden functionaliteit voor het samenvoegen en splitsen van bestandspaden.
De functie Join neemt een willekeurig aantal padelementen op. Het retourneert een enkele bestandspadreeks die het resultaat is van het samenvoegen van die elementen met behulp van het juiste padscheidingsteken voor het besturingssysteem. De Meedoen functie is handig voor het construeren van bestandspaden onafhankelijk van het onderliggende bestandssysteem.
pakket voornaamst
importeren (
"fmt"
"pad/bestandspad"
)funcvoornaamst() {
// Definieert vier bestandspaden voor de join-bewerking
pad1 := "map1"
pad2 := "map2"
pad3 := "submap1"
pad4 := "voorbeeld.txt"// Voegt de vier bestandspaden samen tot één pad
joinPath := bestandspad. Deelnemen (pad1, pad2, pad3, pad4)
// Druk het uniforme bestandspad af
fmt. Println("Verbonden pad:", joinPath)
}
De pad1, pad2, En pad3 variabelen zijn mapnamen en de pad4 variabele is een bestandsnaam. De Meedoen functie neemt de namen van de padvariabelen over en retourneert het aaneengeschakelde bestandspad. De voornaamst functie drukt het samengevoegde bestandspad af naar de console met de fmt pakket.
De Splitsen functie neemt een padtekenreeks op en retourneert de directory- en bestandsnaamcomponenten van het pad. De Splitsen functie is handig voor het extraheren van bestandsnamen of het bepalen van de bovenliggende map van een bestand.
pakket voornaamst
importeren (
"fmt"
"pad/bestandspad"
)
funcvoornaamst() {
// Stelt het bestandspad in voor de splitsingsbewerking
bestandspad := "/home/gebruiker/documenten/voorbeeld.txt"
// Gebruik de functie Splitsen om het bestandspad te splitsen
// in de directory en bestandscomponenten
dir, bestand := bestandspad. Splitsen (bestandspad)
// Druk de directory- en bestandscomponenten af
fmt. Println("Lijst:", richt)
fmt. Println("Bestand:", bestand)
}
De bestandspad variabele is het oorspronkelijke bestandspad en de Splitsen functie neemt de bestandspad variabele en retourneert de map- en bestandsnamen als tekenreeksen. De voornaamst functie drukt de map- en bestandsnamen af naar de console.
U kunt tekstbestanden manipuleren met Go
Naast bestandssysteemfunctionaliteit biedt Go pakketten om u te helpen met meerdere bestandstypen te werken, inclusief tekstbestanden.
U kunt de bufio pakket naar gebufferde invoer- en uitvoerbewerkingen op tekstbestanden en de os pakket voor het maken van onder andere bestanden.