Práce se soubory a adresáři je základním úkolem pro aplikace, které potřebují ukládat a načítat data. Go poskytuje balíček filepath pro operace s cestami k souboru nezávislé na platformě. Balíček obsahuje funkce pro manipulaci s cestami k souborům a je kompatibilní s Windows, Linuxem a macOS.
Funkce, které cesta k souboru obsahuje, mohou spojovat, rozdělovat a čistit cesty k souborům, aby byla zajištěna jejich platnost. Balíček má také funkce pro procházení adresářů a vyhledávání souborů.
Pěší adresářové stromy
The Procházka funkce cesta k souboru balíček poskytuje funkce pro procházení stromem adresářů a procházení soubory a adresáře způsobem předobjednávky. Rekurzivně navštíví všechny adresáře pod daným kořenem. Funkce Walk přebírá kořenový adresář a funkci, která přebírá cestu, instanci informací o souboru a instanci chyby.
balík hlavní
import (
"fmt"
"cesta/cesta k souboru"
"os"
)funchlavní() {
// Definuje kořenový adresář pro zahájení procházky
kořen := "."// Používá funkci Walk k procházení stromem adresářů
err := cesta k souboru. Procházka (kořen, func(cesta tětiva, info os. FileInfo, chyba chyba)chyba {
-li chyba!= nula {
vrátit se chybovat
}// Vytiskne název každého souboru nebo adresáře
fmt. Println (cesta)
vrátit senula
})
// Kontroluje chyby
-li chyba!= nula {
fmt. Printf("Chyba při procházení stromu adresářů: %v\n", chyba)
}
}
Tento program definuje kořenový adresář jako aktuální pracovní adresář. The hlavní funkce prochází adresáře v kořenovém adresáři a vypisuje názvy souborů.
Odpovídající Soubory S Odpovídajícím Vzorem
Můžete použít Zápas funkce pro porovnání názvů souborů se vzorem. Syntaxe vzoru je založena na společném syntaxe zástupných znaků souboru, která používá metaznaky, známé jako glob vzory v prostředí Unixu.
balík hlavní
import (
"fmt"
"cesta/cesta k souboru"
)funchlavní() {
// Definuje vzor, který se má shodovat
vzor := "*.txt"// Použije funkci Match k porovnání vzoru v souborech
shoda, chyba := cesta k souboru. Shoda (vzor, "soubor.txt")-li chyba!= nula {
fmt. Printf("Chyba při hledání vzoru: %v\n", chyba)
vrátit se
}
// Vytiskne výsledek zápasu
-li zápas {
fmt. Println("Soubor odpovídá vzoru.")
} jiný {
fmt. Println("Soubor neodpovídá vzoru.")
}
}
The hlavní funkce porovnává název souboru s *.txt vzor a vytiskne řetězec v závislosti na výsledku podmíněný příkaz.
Čištění cest s funkcí Clean
The Čistý funkce převezme cestu k souboru a vrátí vyčištěnou verzi cesty odstraněním nepotřebných oddělovačů a změn adresářů, jako je např . (aktuální adresář) a .. (nadřazený adresář) segmenty.
Čištění cest k souborům je užitečné, protože pomáhá vyhnout se chybám, pokud cesta obsahuje nadbytečné oddělovače nebo neplatné segmenty nebo vytváří cesty nezávislé na aktuálním pracovním adresáři.
balík hlavní
import (
"fmt"
"cesta/cesta k souboru"
)funchlavní() {
// Vytvoří cestu s nadbytečnými oddělovači a neplatnými segmenty
cesta := "/foo/bar//baz/.././qux/"// Vyčistí cestu
cleanPath := cesta k souboru. Čistá (cesta)
// Vytiskne původní a vyčištěné cesty k souboru
fmt. Println("Původní cesta:", cesta)
fmt. Println("Vyčištěná cesta:", čistá cesta)
}
The cesta proměnná je počáteční cesta k souboru a Čistý funkce čistí cesta a vrátí vyčištěnou cestu k souboru. The hlavní funkce vytiskne počáteční a čisté cesty k souboru.
Spojení a rozdělení cest souborů v Go
The Připojit a Rozdělit funkce poskytují funkce pro spojování a rozdělování cest k souborům.
Funkce Join přijímá libovolný počet prvků cesty. Vrátí jeden řetězec cesty k souboru, který je výsledkem zřetězení těchto prvků pomocí příslušného oddělovače cest pro operační systém. The Připojit Funkce je užitečná pro vytváření cest k souborům nezávisle na základním systému souborů.
balík hlavní
import (
"fmt"
"cesta/cesta k souboru"
)funchlavní() {
// Definuje čtyři cesty k souboru pro operaci spojení
cesta1 := "složka1"
cesta2 := "složka2"
cesta3 := "podsložka1"
cesta 4 := "example.txt"// Spojí čtyři cesty k souboru do jediné cesty
joinPath := cesta k souboru. Připojit se (cesta1, cesta2, cesta3, cesta4)
// Vytiskne jednotnou cestu k souboru
fmt. Println("Připojená cesta:", joinPath)
}
The cesta1, cesta2, a cesta3 proměnné jsou názvy složek a cesta4 proměnná je název souboru. The Připojit funkce převezme názvy proměnných path a vrátí zřetězenou cestu k souboru. The hlavní funkce vytiskne cestu k zřetězenému souboru do konzole s příponou fmt balík.
The Rozdělit funkce přijímá řetězec cesty a vrací komponenty adresáře a názvu souboru cesty. The Rozdělit funkce je užitečná pro extrakci názvů souborů nebo určení nadřazeného adresáře souboru.
balík hlavní
import (
"fmt"
"cesta/cesta k souboru"
)
funchlavní() {
// Nastaví cestu k souboru pro operaci rozdělení
cesta k souboru := "/home/user/documents/example.txt"
// K rozdělení cesty k souboru použijte funkci Rozdělit
// do jeho adresářových a souborových komponent
dir, soubor := cesta k souboru. Rozdělit (filePath)
// Vytiskne složky adresáře a souboru
fmt. Println("Adresář:", dir)
fmt. Println("Soubor:", soubor)
}
The cesta k souboru proměnná je původní cesta k souboru a Rozdělit funkce bere v cesta k souboru proměnnou a vrátí názvy adresářů a souborů jako řetězce. The hlavní funkce vytiskne názvy adresářů a souborů do konzole.
S Go můžete manipulovat s textovými soubory
Kromě funkcí systému souborů nabízí Go balíčky, které vám pomohou pracovat s více typy souborů, včetně textových souborů.
Můžete použít bufio balíček pro operace vstupu a výstupu s vyrovnávací pamětí na textových souborech a os balíček pro vytváření souborů, mimo jiné operace.