/ / Cách tương tác với tệp và thư mục trong Go

Cách tương tác với tệp và thư mục trong Go

Làm việc với tệp và thư mục là công việc cần thiết đối với các ứng dụng cần lưu trữ và truy xuất dữ liệu. Go cung cấp gói filepath cho các hoạt động đường dẫn tệp độc lập với nền tảng. Gói này bao gồm các chức năng để thao tác đường dẫn tệp và nó tương thích với Windows, Linux và macOS.


Các chức năng mà filepath bao gồm có thể nối, tách và làm sạch đường dẫn tệp để đảm bảo chúng hợp lệ. Gói này cũng có các chức năng để đi bộ thư mục và tìm kiếm tệp.


Cây thư mục đi bộ

Các Đi bộ chức năng của đường dẫn tập tin gói cung cấp chức năng để duyệt cây thư mục và duyệt qua các tệp và thư mục theo cách đặt hàng trước. Nó sẽ truy cập đệ quy tất cả các thư mục bên dưới gốc đã cho. Hàm Walk nhận một thư mục gốc và một hàm nhận đường dẫn, phiên bản thông tin tệp và phiên bản lỗi.

 package main

import (
    "fmt"
    "path/filepath"
    "os"
)

func main() {
    
    root := "."

    
    err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
        if err != nil {
            return err
        }

        
        fmt.Println(path)
        return nil
    })

    
    if err != nil {
        fmt.Printf("Error walking directory tree: %vn", err)
    }
}

Chương trình này định nghĩa thư mục gốc là thư mục làm việc hiện tại. Các chủ yếu chức năng duyệt qua các thư mục trong thư mục gốc và in ra tên của các tệp.

kết quả từ Walking Directory Trees

Khớp tệp với khớp mẫu

Bạn có thể dùng Cuộc thi đấu để khớp tên tệp với một mẫu. Cú pháp mẫu dựa trên cú pháp ký tự đại diện tệp phổ biến, sử dụng siêu ký tự, được gọi là mẫu toàn cầu trong môi trường Unix.

 package main

import (
    "fmt"
    "path/filepath"
)

func main() {
    
    pattern := "*.txt"

    
    match, err := filepath.Match(pattern, "file.txt")

    if err != nil {
        fmt.Printf("Error matching pattern: %vn", err)
        return
    }

    
    if match {
        fmt.Println("File matches pattern.")
    } else {
        fmt.Println("File does not match pattern.")
    }
}

Các chủ yếu hàm khớp tên tệp với *.txt mẫu và in ra một chuỗi tùy thuộc vào kết quả của câu lệnh điều kiện.

Làm sạch đường dẫn với chức năng làm sạch

Các Lau dọn hàm nhận một đường dẫn tệp và trả về một phiên bản đường dẫn đã được làm sạch bằng cách loại bỏ các dấu phân tách không cần thiết và các thay đổi thư mục, chẳng hạn như . (thư mục hiện tại) và .. (thư mục mẹ) phân đoạn.

Làm sạch đường dẫn tệp rất hữu ích vì nó giúp tránh lỗi nếu đường dẫn chứa dấu phân cách thừa hoặc phân đoạn không hợp lệ hoặc xây dựng đường dẫn độc lập với thư mục làm việc hiện tại.

 package main

import (
    "fmt"
    "path/filepath"
)

func main() {
    
    path := "/foo/bar//baz/.././qux/"

    
    cleanPath := filepath.Clean(path)

    
    fmt.Println("Original path:", path)
    fmt.Println("Cleaned path:", cleanPath)
}

Các con đường biến là đường dẫn tệp ban đầu và Lau dọn chức năng làm sạch con đường biến và trả về đường dẫn tệp đã được làm sạch. Các chủ yếu chức năng in các đường dẫn tệp ban đầu và sạch.

kết quả từ Làm sạch Đường dẫn Với Chức năng Làm sạch

Nối và tách đường dẫn tệp trong Go

Các Tham giaTách ra chức năng cung cấp chức năng nối và chia đường dẫn tệp.

Hàm Join nhận bất kỳ số phần tử đường dẫn nào. Nó trả về một chuỗi đường dẫn tệp duy nhất là kết quả của việc nối các phần tử đó bằng cách sử dụng dấu tách đường dẫn thích hợp cho hệ điều hành. Các Tham gia chức năng này rất hữu ích để xây dựng các đường dẫn tệp độc lập với hệ thống tệp bên dưới.

 package main

import (
    "fmt"
    "path/filepath"
)

func main() {
    
    path1 := "folder1"
    path2 := "folder2"
    path3 := "subfolder1"
    path4 := "example.txt"

    
    joinedPath := filepath.Join(path1, path2, path3, path4)

    
    fmt.Println("Joined Path:", joinedPath)
}

Các con đường1, đường dẫn2con đường3 các biến là tên thư mục và con đường4 biến là một tên tập tin. Các Tham gia hàm lấy tên biến đường dẫn và trả về đường dẫn tệp được nối. Các chủ yếu chức năng in đường dẫn tệp nối đến bàn điều khiển với fmt bưu kiện.

Các Tách ra hàm nhận vào một chuỗi đường dẫn và trả về các thành phần tên tệp và thư mục của đường dẫn. Các Tách ra chức năng này rất hữu ích để trích xuất tên tệp hoặc xác định thư mục mẹ của tệp.

 package main

import (
    "fmt"
    "path/filepath"
)

func main() {
    
    filePath := "/home/user/documents/example.txt"
    
    
    
    dir, file := filepath.Split(filePath)
    
    
    fmt.Println("Directory:", dir)
    fmt.Println("File:", file)
}

Các đường dẫn tập tin biến là đường dẫn tệp gốc và Tách ra chức năng nhận trong đường dẫn tập tin biến và trả về thư mục và tên tệp dưới dạng chuỗi. Các chủ yếu hàm in tên thư mục và tệp ra bàn điều khiển.

Bạn có thể thao tác với các tệp văn bản bằng Go

Bên cạnh chức năng hệ thống tệp, Go cung cấp các gói để giúp bạn làm việc với nhiều loại tệp, bao gồm tệp văn bản.

Bạn có thể dùng bufio gói cho các hoạt động đầu vào và đầu ra được đệm trên các tệp văn bản và hệ điều hành gói để tạo tệp, trong số các hoạt động khác.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *