Čtenáři jako vy pomáhají podporovat MUO. Když provedete nákup pomocí odkazů na našich stránkách, můžeme získat provizi přidružené společnosti. Přečtěte si více.

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
instagram viewer
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.