Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор. Прочетете още.

Работата с файлове и директории е основна задача за приложения, които трябва да съхраняват и извличат данни. Go предоставя пакета filepath за операции с файлови пътища, независими от платформата. Пакетът включва функции за манипулиране на файлови пътища и е съвместим с Windows, Linux и macOS.

Функциите, които filepath включва, могат да съединяват, разделят и почистват пътеки на файлове, за да гарантират, че са валидни. Пакетът има и функции за ходене по директории и търсене на файлове.

Ходещи указателни дървета

The Разходка функция на файлова пътека пакетът предоставя функционалност за обхождане на дърво на директории и преминаване през файлове и директории по начин на предварителна поръчка. Той рекурсивно ще посети всички директории под дадения корен. Функцията Walk приема главна директория и функция, която приема пътя, екземпляр с информация за файла и екземпляр за грешка.

instagram viewer
пакет основен

импортиране (
"fmt"
"път/файлов път"
"операционна система"
)

функосновен() {
// Дефинира основната директория за стартиране на разходката
корен := "."

// Използва функцията Walk, за да се разхожда в дървото на директорията
грешка := път на файл. Разходка (корен, функ(път низ, инфо ос. FileInfo, err грешка)грешка {
ако грешка!= нула {
връщане грешка
}

// Отпечатва името на всеки файл или директория
fmt. Println (път)
връщаненула
})

// Проверява за грешки
ако грешка!= нула {
fmt. Printf(„Грешка при обхождане на дървото на директорията: %v\n“, грешка)
}
}

Тази програма определя основната директория като текуща работна директория. The основен функция преминава през директориите в основната директория и отпечатва имената на файловете.

Съпоставяне на файлове със съпоставяне на шаблони

Можете да използвате Съвпада функция за съпоставяне на имена на файлове с шаблон. Синтаксисът на модела се основава на общия файлов синтаксис със заместващи символи, който използва метасимволи, известни като глобални модели в среди на Unix.

пакет основен

импортиране (
"fmt"
"път/файлов път"
)

функосновен() {
// Дефинира шаблона за съвпадение
модел := "*.текст"

// Използва функцията за съпоставяне, за да съпостави шаблона на файловете
съвпадение, грешка := път на файл. Съвпадение (модел, "файл.txt")

ако грешка!= нула {
fmt. Printf(„Грешка при съвпадение на шаблон: %v\n“, грешка)
връщане
}

// Отпечатва резултата от съвпадението
ако съвпада {
fmt. Println(„Файлът съответства на модела.“)
} друго {
fmt. Println(„Файлът не съответства на модела.“)
}
}

The основен функция съвпада с име на файл срещу *.текст шаблон и отпечатва низ в зависимост от резултата от условното твърдение.

Почистване на пътеки с функцията Clean

The Чисто функцията приема път към файл и връща изчистена версия на път чрез премахване на ненужните разделители и промени в директорията, като напр. . (текуща директория) и .. (родителска директория) сегменти.

Почистването на пътищата на файловете е полезно, тъй като помага да се избегнат грешки, ако даден път съдържа излишни разделители или невалидни сегменти, или конструира пътища, независими от текущата работна директория.

пакет основен

импортиране (
"fmt"
"път/файлов път"
)

функосновен() {
// Създава път с излишни разделители и невалидни сегменти
път := "/foo/bar//baz/.././qux/"

// Почиства пътя
cleanPath := път на файл. Чист (път)

// Отпечатва оригиналните и изчистени пътеки на файлове
fmt. Println(„Оригинален път:“, път)
fmt. Println(„Почистен път:“, cleanPath)
}

The път променлива е първоначалният път на файла, а Чисто функция почиства път променлива и връща изчистения път на файла. The основен функцията отпечатва първоначалния и чист път на файла.

Съединяване и разделяне на пътища на файлове в Go

The Присъединяване и Сплит функциите осигуряват функционалност за свързване и разделяне на файлови пътища.

Функцията Join приема произволен брой елементи на пътя. Той връща единичен низ на пътя на файла, който е резултат от свързването на тези елементи с помощта на подходящия разделител на пътя за операционната система. The Присъединяване функцията е полезна за конструиране на файлови пътища, независими от основната файлова система.

пакет основен

импортиране (
"fmt"
"път/файлов път"
)

функосновен() {
// Дефинира четири файлови пътя за операцията за присъединяване
път1 := "папка1"
път2 := "папка2"
път3 := "подпапка1"
път4 := "example.txt"

// Обединява четирите пътя на файла заедно в един път
joinedPath := път на файл. Присъединяване (път1, път2, път3, път4)

// Отпечатване на унифицирания файлов път
fmt. Println(„Присъединен път:“, joinedPath)
}

The път1, път2, и път3 променливите са имена на папки и път4 променлива е име на файл. The Присъединяване функцията приема имената на променливите на пътя и връща пътя на конкатенирания файл. The основен функцията отпечатва пътя на свързания файл към конзолата с fmt пакет.

The Сплит функцията приема низ от пътя и връща директорията на пътя и компонентите на името на файла. The Сплит функцията е полезна за извличане на имена на файлове или определяне на родителската директория на файл.

пакет основен

импортиране (
"fmt"
"път/файлов път"
)

функосновен() {
// Задава пътя на файла за операцията за разделяне
път на файла := "/home/user/documents/example.txt"

// Използвайте функцията Split, за да разделите пътя на файла
// в неговата директория и файлови компоненти
dir, файл := път на файл. Разделяне (filePath)

// Отпечатване на директорията и файловите компоненти
fmt. Println("Указател:", реж.)
fmt. Println("Файл:", файл)
}

The файлова пътека променлива е оригиналният път на файла, а Сплит функцията приема файлова пътека променлива и връща имената на директорията и файловете като низове. The основен функцията отпечатва имената на директорията и файловете на конзолата.

Можете да манипулирате текстови файлове с Go

Наред с функционалността на файловата система, Go предоставя пакети, които да ви помогнат да работите с множество типове файлове, включително текстови файлове.

Можете да използвате буфио пакет за буферирани входни и изходни операции върху текстови файлове и операционна система пакет за създаване на файлове, наред с други операции.