Πώς να αλληλεπιδράσετε με αρχεία και καταλόγους στο Go

Πώς να αλληλεπιδράσετε με αρχεία και καταλόγους στο Go
Αναγνώστες σαν εσάς βοηθούν στην υποστήριξη του MUO. Όταν κάνετε μια αγορά χρησιμοποιώντας συνδέσμους στον ιστότοπό μας, ενδέχεται να κερδίσουμε μια προμήθεια θυγατρικών. Διαβάστε περισσότερα.

Η εργασία με αρχεία και καταλόγους είναι μια βασική εργασία για εφαρμογές που χρειάζονται αποθήκευση και ανάκτηση δεδομένων. Το Go παρέχει το πακέτο διαδρομής αρχείου για λειτουργίες διαδρομής αρχείου ανεξάρτητες από πλατφόρμα. Το πακέτο περιλαμβάνει λειτουργίες χειρισμού διαδρομών αρχείων και είναι συμβατό με Windows, Linux και macOS.





Οι συναρτήσεις που περιλαμβάνει η διαδρομή αρχείου μπορούν να ενώσουν, να χωρίσουν και να καθαρίσουν διαδρομές αρχείων για να διασφαλιστεί ότι είναι έγκυρες. Το πακέτο έχει επίσης λειτουργίες για πεζοπορία καταλόγων και αναζήτηση αρχείων.





ΚΑΤΑΣΚΕΥΗ ΒΙΝΤΕΟ ΤΗΣ ΗΜΕΡΑΣ

Walking Directory Trees

ο Περπατήστε λειτουργία του διαδρομή αρχείου Το πακέτο παρέχει λειτουργικότητα για περπάτημα σε ένα δέντρο καταλόγου και διέλευση αρχείων και καταλόγων με τρόπο προπαραγγελίας. Θα επισκεφθεί αναδρομικά όλους τους καταλόγους κάτω από τη δεδομένη ρίζα. Η συνάρτηση 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)
    }
}

Αυτό το πρόγραμμα ορίζει τον ριζικό κατάλογο ως τον τρέχοντα κατάλογο εργασίας. ο κύριος Η λειτουργία διασχίζει τους καταλόγους στον ριζικό κατάλογο και εκτυπώνει τα ονόματα των αρχείων.

  αποτέλεσμα από το Walking Directory Trees

Αντιστοίχιση αρχείων με αντιστοίχιση προτύπων

Μπορείτε να χρησιμοποιήσετε το Αγώνας λειτουργία για αντιστοίχιση ονομάτων αρχείων με μοτίβο. Η σύνταξη του προτύπου βασίζεται στο κοινό αρχείο σύνταξης μπαλαντέρ, το οποίο χρησιμοποιεί μεταχαρακτήρες , γνωστά ως σφαιρικά μοτίβα σε περιβάλλοντα 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.")
    }
}

ο κύριος η συνάρτηση ταιριάζει με ένα όνομα αρχείου με το *.κείμενο μοτίβο και εκτυπώνει μια συμβολοσειρά ανάλογα με το αποτέλεσμα του η υπό όρους δήλωση .

Καθαρισμός μονοπατιών με τη λειτουργία Clean

ο ΚΑΘΑΡΗ η συνάρτηση παίρνει μια διαδρομή αρχείου και επιστρέφει μια καθαρισμένη έκδοση μιας διαδρομής αφαιρώντας περιττά διαχωριστικά και αλλαγές καταλόγου, όπως π.χ. . (τρέχων κατάλογος) και .. τμήματα (γονικός κατάλογος).





γιατί δεν θα δουλέψει το ποντίκι μου

Ο καθαρισμός των διαδρομών αρχείων είναι χρήσιμος, καθώς βοηθά στην αποφυγή σφαλμάτων εάν μια διαδρομή περιέχει περιττά διαχωριστικά ή μη έγκυρα τμήματα ή δημιουργεί διαδρομές ανεξάρτητα από τον τρέχοντα κατάλογο εργασίας.

 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)
}

ο μονοπάτι μεταβλητή είναι η αρχική διαδρομή αρχείου και το ΚΑΘΑΡΗ λειτουργία καθαρίζει το μονοπάτι μεταβλητή και επιστρέφει τη διαδρομή του καθαρισμένου αρχείου. ο κύριος Η λειτουργία εκτυπώνει τις αρχικές και καθαρές διαδρομές αρχείου.





  προκύπτουν από το Cleaning Paths With the Clean Function

Σύνδεση και διαίρεση διαδρομών αρχείων στο Go

ο Συμμετοχή και Διαίρεση Οι λειτουργίες παρέχουν λειτουργικότητα για σύνδεση και διαχωρισμό μονοπατιών αρχείων.

Η συνάρτηση Join λαμβάνει οποιονδήποτε αριθμό στοιχείων διαδρομής. Επιστρέφει μια μοναδική συμβολοσειρά διαδρομής αρχείου που προκύπτει από τη σύνδεση αυτών των στοιχείων χρησιμοποιώντας το κατάλληλο διαχωριστικό διαδρομής για το λειτουργικό σύστημα. ο Συμμετοχή Η λειτουργία είναι χρήσιμη για τη δημιουργία διαδρομών αρχείων ανεξάρτητων από το υποκείμενο σύστημα αρχείων.

 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 μεταβλητή είναι ένα όνομα αρχείου. ο Συμμετοχή Η συνάρτηση παίρνει τα ονόματα των μεταβλητών διαδρομής και επιστρέφει τη συνενωμένη διαδρομή αρχείου. ο κύριος Η λειτουργία εκτυπώνει τη συνενωμένη διαδρομή αρχείου στην κονσόλα με το fmt πακέτο.

ο Διαίρεση Η συνάρτηση παίρνει μια συμβολοσειρά διαδρομής και επιστρέφει τα στοιχεία του καταλόγου και του ονόματος αρχείου της διαδρομής. ο Διαίρεση Η λειτουργία είναι χρήσιμη για την εξαγωγή ονομάτων αρχείων ή για τον προσδιορισμό του γονικού καταλόγου ενός αρχείου.

 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 παρέχει πακέτα που σας βοηθούν να εργαστείτε με πολλούς τύπους αρχείων, συμπεριλαμβανομένων των αρχείων κειμένου.

Μπορείτε να χρησιμοποιήσετε το bufio πακέτο σε λειτουργίες εισόδου και εξόδου σε προσωρινή μνήμη σε αρχεία κειμένου και το εσείς πακέτο για τη δημιουργία αρχείων, μεταξύ άλλων λειτουργιών.