Такие читатели, как вы, помогают поддерживать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию. Читать далее.

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

Функции, которые включает в себя путь к файлу, могут объединять, разделять и очищать пути к файлам, чтобы убедиться, что они действительны. В пакете также есть функции для обхода каталогов и поиска файлов.

Прогулка по деревьям каталогов

Ходить функция Путь к файлу package предоставляет функциональные возможности для обхода дерева каталогов и обхода файлов и каталогов в порядке предварительного заказа. Он будет рекурсивно посещать все каталоги ниже данного корня. Функция Walk принимает корневой каталог и функцию, которая принимает путь, экземпляр информации о файле и экземпляр ошибки.

instagram viewer
упаковка основной

Импортировать (
"ФМТ"
"путь/путь к файлу"
"Операционные системы"
)

функцияосновной() {
// Определяем корневой каталог для начала обхода
корень := "."

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

// Печатает имя каждого файла или каталога
ФМТ. Println (путь)
возвращатьсяноль
})

// Проверяет на ошибки
если ошибся != ноль {
ФМТ. Распечататьf("Ошибка обхода дерева каталогов: %v\n", ошибся)
}
}

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

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

Вы можете использовать Соответствовать функция для сопоставления имен файлов с шаблоном. Синтаксис шаблона основан на общем синтаксис подстановочных знаков файла, в котором используются метасимволы, известные как шаблоны глобусов в средах Unix.

упаковка основной

Импортировать (
"ФМТ"
"путь/путь к файлу"
)

функцияосновной() {
// Определяет шаблон для соответствия
шаблон := "*.текст"

// Использует функцию Match для сопоставления шаблона в файлах
совпадение, ошибка := путь к файлу. Совпадение (шаблон, "файл.txt")

если ошибся != ноль {
ФМТ. Распечататьf("Ошибка сопоставления шаблона: %v\n", ошибся)
возвращаться
}

// Выводит результат совпадения
если соответствовать {
ФМТ. Распечатать(«Файл соответствует шаблону».)
} еще {
ФМТ. Распечатать(«Файл не соответствует шаблону».)
}
}

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

Очистка путей с помощью функции очистки

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

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

упаковка основной

Импортировать (
"ФМТ"
"путь/путь к файлу"
)

функцияосновной() {
// Создает путь с избыточными разделителями и недопустимыми сегментами
путь := "/foo/bar//баз/.././qux/"

// Очищает путь
чистый путь := путь к файлу. Чистый (путь)

// Печатает оригинальные и очищенные пути к файлам
ФМТ. Распечатать("Исходный путь:", путь)
ФМТ. Распечатать("Очищенный путь:", чистый путь)
}

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

Объединение и разделение путей к файлам в Go

Присоединиться и Расколоть функции предоставляют функциональные возможности для объединения и разделения путей к файлам.

Функция Join принимает любое количество элементов пути. Он возвращает единую строку пути к файлу, полученную в результате объединения этих элементов с использованием соответствующего разделителя пути для операционной системы. Присоединиться Функция полезна для построения путей к файлам независимо от базовой файловой системы.

упаковка основной

Импортировать (
"ФМТ"
"путь/путь к файлу"
)

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

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

// Печать единого пути к файлу
ФМТ. Распечатать("Объединенный путь:", присоединенный путь)
}

путь1, путь2, и путь3 переменные — это имена папок, а путь4 переменная - это имя файла. Присоединиться Функция принимает имена переменных пути и возвращает объединенный путь к файлу. основной функция выводит конкатенированный путь к файлу на консоль с ФМТ упаковка.

Расколоть Функция принимает строку пути и возвращает компоненты пути и имени файла. Расколоть Функция полезна для извлечения имен файлов или определения родительского каталога файла.

упаковка основной

Импортировать (
"ФМТ"
"путь/путь к файлу"
)

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

// Используйте функцию Split, чтобы разделить путь к файлу
// в свой каталог и файловые компоненты
каталог, файл := путь к файлу. Разделить (путь к файлу)

// Печатаем компоненты каталога и файла
ФМТ. Распечатать("Каталог:", реж.)
ФМТ. Распечатать("Файл:", файл)
}

Путь к файлу переменная — исходный путь к файлу, а Расколоть функция принимает в Путь к файлу переменная и возвращает имена каталогов и файлов в виде строк. основной функция выводит имена каталогов и файлов на консоль.

Вы можете манипулировать текстовыми файлами с помощью Go

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

Вы можете использовать буфий package для буферизации операций ввода и вывода над текстовыми файлами и Операционные системы package для создания файлов, среди прочих операций.