การทำงานกับไฟล์และไดเร็กทอรีเป็นงานที่จำเป็นสำหรับแอปพลิเคชันที่ต้องจัดเก็บและดึงข้อมูล Go จัดเตรียมแพ็คเกจพาธไฟล์สำหรับการดำเนินการพาธไฟล์ที่ไม่ขึ้นกับแพลตฟอร์ม แพ็คเกจประกอบด้วยฟังก์ชั่นในการจัดการเส้นทางไฟล์และเข้ากันได้กับ Windows, Linux และ macOS
ฟังก์ชันที่มีพาธของไฟล์สามารถรวม แยก และล้างพาธไฟล์เพื่อให้แน่ใจว่าถูกต้อง แพ็คเกจยังมีฟังก์ชั่นสำหรับการเดินไดเร็กทอรีและค้นหาไฟล์
ทำไม apple watch ของฉันถึงตายเร็วจังสร้างวิดีโอประจำวัน
ต้นไม้ไดเรกทอรีเดิน
เดอะ เดิน หน้าที่ของ เส้นทางไฟล์ แพ็คเกจมีฟังก์ชันสำหรับเดินโครงสร้างไดเร็กทอรีและสำรวจผ่านไฟล์และไดเร็กทอรีในลักษณะสั่งซื้อล่วงหน้า มันจะวนซ้ำไปยังไดเร็กทอรีทั้งหมดที่อยู่ด้านล่างของรูทที่กำหนด ฟังก์ชัน Walk รับในไดเร็กทอรีรากและฟังก์ชันรับในเส้นทาง อินสแตนซ์ข้อมูลไฟล์ และอินสแตนซ์ข้อผิดพลาด
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)
}
}
โปรแกรมนี้กำหนดไดเร็กทอรีรูทเป็นไดเร็กทอรีการทำงานปัจจุบัน เดอะ หลัก ฟังก์ชันสำรวจผ่านไดเร็กทอรีในไดเร็กทอรีรากและพิมพ์ชื่อไฟล์ออกมา
จับคู่ไฟล์ด้วยการจับคู่รูปแบบ
คุณสามารถใช้ จับคู่ ฟังก์ชันจับคู่ชื่อไฟล์กับรูปแบบ ไวยากรณ์ของรูปแบบขึ้นอยู่กับสามัญ ไวยากรณ์ไวด์การ์ดของไฟล์ซึ่งใช้อักขระเมตา ที่เรียกว่ารูปแบบลูกโลกในสภาพแวดล้อม 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.")
}
}
เดอะ หลัก ฟังก์ชันจับคู่ชื่อไฟล์กับ *.txt รูปแบบและพิมพ์สตริงขึ้นอยู่กับผลลัพธ์ของ คำสั่งเงื่อนไข .
ทำความสะอาดเส้นทางด้วยฟังก์ชั่น Clean
เดอะ ทำความสะอาด ฟังก์ชันรับพาธของไฟล์และส่งคืนพาธเวอร์ชันที่สะอาดแล้วโดยการลบตัวคั่นที่ไม่จำเป็นและการเปลี่ยนแปลงไดเร็กทอรี เช่น . (ไดเรกทอรีปัจจุบัน) และ .. (ไดเร็กทอรีหลัก) ส่วน
การล้างพาธของไฟล์มีประโยชน์เนื่องจากช่วยหลีกเลี่ยงข้อผิดพลาดหากพาธมีตัวคั่นซ้ำซ้อนหรือเซ็กเมนต์ที่ไม่ถูกต้อง หรือสร้างพาธที่ไม่ขึ้นกับไดเร็กทอรีการทำงานปัจจุบัน
ไม่สามารถเข้าถึงไซต์นี้ได้ การเชื่อมต่อถูกรีเซ็ต err_connection_reset
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)
}
เดอะ เส้นทาง ตัวแปรคือเส้นทางไฟล์เริ่มต้นและไฟล์ ทำความสะอาด ฟังก์ชั่นทำความสะอาด เส้นทาง ตัวแปรและส่งกลับเส้นทางไฟล์ที่สะอาด เดอะ หลัก ฟังก์ชันพิมพ์เส้นทางไฟล์เริ่มต้นและสะอาด
การเข้าร่วมและแยกเส้นทางไฟล์ใน Go
เดอะ เข้าร่วม และ แยก ฟังก์ชันมีฟังก์ชันสำหรับการรวมและแยกพาธของไฟล์
ฟังก์ชันการเข้าร่วมใช้องค์ประกอบเส้นทางจำนวนเท่าใดก็ได้ โดยจะส่งคืนสตริงพาธไฟล์เดียวที่เป็นผลมาจากการต่อองค์ประกอบเหล่านั้นโดยใช้ตัวคั่นพาธที่เหมาะสมสำหรับระบบปฏิบัติการ เดอะ เข้าร่วม ฟังก์ชันนี้มีประโยชน์สำหรับการสร้างพาธของไฟล์โดยไม่ขึ้นกับระบบไฟล์พื้นฐาน
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)
}
เดอะ เส้นทางที่ 1 , เส้นทางที่ 2 , และ เส้นทางที่ 3 ตัวแปรคือชื่อโฟลเดอร์และ เส้นทางที่ 4 ตัวแปรคือชื่อไฟล์ เดอะ เข้าร่วม ฟังก์ชันใช้ชื่อตัวแปรเส้นทางและส่งกลับเส้นทางไฟล์ที่ต่อกัน เดอะ หลัก ฟังก์ชันพิมพ์พาธไฟล์ที่ต่อกันไปยังคอนโซลด้วย เอฟเอ็มที บรรจุุภัณฑ์.
ดูหนังใหม่ฟรีโดยไม่ต้องดาวน์โหลด
เดอะ แยก ฟังก์ชันรับสตริงพาธและส่งคืนไดเร็กทอรีของพาธและชื่อไฟล์ เดอะ แยก ฟังก์ชันนี้มีประโยชน์สำหรับการแยกชื่อไฟล์หรือกำหนดไดเร็กทอรีหลักของไฟล์
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)
}
เดอะ เส้นทางไฟล์ ตัวแปรคือเส้นทางไฟล์ต้นฉบับและไฟล์ แยก ฟังก์ชั่นใช้เวลาใน เส้นทางไฟล์ ตัวแปรและส่งกลับไดเรกทอรีและชื่อไฟล์เป็นสตริง เดอะ หลัก ฟังก์ชันพิมพ์ไดเร็กทอรีและชื่อไฟล์ไปยังคอนโซล
คุณสามารถจัดการไฟล์ข้อความได้ด้วย Go
นอกเหนือจากการทำงานของระบบไฟล์แล้ว Go ยังมีแพ็คเกจที่จะช่วยให้คุณทำงานกับไฟล์หลายประเภท รวมถึงไฟล์ข้อความ
คุณสามารถใช้ บูฟิโอ แพ็คเกจไปยังการดำเนินการอินพุตและเอาต์พุตบัฟเฟอร์ในไฟล์ข้อความและไฟล์ คุณ แพ็คเกจสำหรับสร้างไฟล์ รวมถึงการดำเนินการอื่นๆ