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.
LÀM VIDEO TRONG NGÀY
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() {
// Defines the root directory to start the walk
root := "."
// Uses the Walk function to walk the directory tree
err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
// Prints the name of each file or directory
fmt.Println(path)
return nil
})
// Checks for errors
if err != nil {
fmt.Printf("Error walking directory tree: %v\n", 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.
mã dừng trang bị lỗi phần cứng bị lỗi
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 được dựa trên chung cú pháp ký tự đại diện tệp, sử dụng siêu ký tự , được gọi là các mẫu toàn cầu trong môi trường Unix.
package main
import (
"fmt"
"path/filepath"
)
func main() {
// Defines the pattern to match
pattern := "*.txt"
// Uses the Match function to match the pattern on files
match, err := filepath.Match(pattern, "file.txt")
if err != nil {
fmt.Printf("Error matching pattern: %v\n", err)
return
}
// Prints the result of the match
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 một chuỗi tùy thuộc vào kết quả của câu đ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() {
// Creates a path with redundant separators and invalid segments
path := "/foo/bar//baz/.././qux/"
// Cleans the path
cleanPath := filepath.Clean(path)
// Prints the original and cleaned file paths
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.
Nối và tách đường dẫn tệp trong Go
Các Tham gia Và Tá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() {
// Defines four file paths for the join operation
path1 := "folder1"
path2 := "folder2"
path3 := "subfolder1"
path4 := "example.txt"
// Joins the four file paths together into a single path
joinedPath := filepath.Join(path1, path2, path3, path4)
// Print the unified file path
fmt.Println("Joined Path:", joinedPath)
}
Các con đường1 , đường dẫn2 , Và con đườ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.
tại sao tôi không nhận được thông báo trên iphone của mình
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() {
// Sets the file path for the split operation
filePath := "/home/user/documents/example.txt"
// Use the Split function to split the file path
// into its directory and file components
dir, file := filepath.Split(filePath)
// Print the directory and file components
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à Bạn gói để tạo tệp, trong số các hoạt động khác.