Go بالأمثلة: الملفات والمجلدات المؤقتة

طوال دورة حياة البرنامج، قد نحتاج إلى إنشاء بيانات ليست بحاجة للاستمرار بعد انتهاء البرنامج. الملفات والمجلدات المؤقتة مفيدة لهذا الغرض.

package main

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

func check(e error) {
    if e != nil {
        panic(e)
    }
}

func main() {

أسهل طريقة لإنشاء ملف مؤقت هي باستخدام os.CreateTemp. ستقوم بإنشاء ملف وتفتحه للقراءة والكتابة. المعامل الأول هو المجلد (الفارغ يعني استخدام المجلد المؤقت الافتراضي للنظام).

    f, err := os.CreateTemp("", "sample")
    check(err)

اطبع اسم الملف المؤقت.

    fmt.Println("Temp file name:", f.Name())

احذف الملف عند الانتهاء.

    defer os.Remove(f.Name())

يمكننا كتابة البيانات في الملف.

    _, err = f.Write([]byte{1, 2, 3})
    check(err)

إذا كنا بحاجة لإنشاء العديد من الملفات المؤقتة، فقد نفضل إنشاء مجلد مؤقت كامل.

    dname, err := os.MkdirTemp("", "sampledir")
    check(err)
    fmt.Println("Temp dir name:", dname)

    defer os.RemoveAll(dname)

الآن يمكننا إنشاء ملفات داخل المجلد المؤقت.

    fname := filepath.Join(dname, "file1")
    err = os.WriteFile(fname, []byte{1, 2}, 0644)
    check(err)
}

تشغيل البرنامج:

$ go run temporary-files-and-directories.go
Temp file name: /tmp/sample31231
Temp dir name: /tmp/sampledir89342

المثال التالي: توجيه التضمين.