Go by Example မြန်မာဘာသာ: Temporary Files and Directories

ကျွန်ုပ်တို့သည် ပရိုဂရမ်အလုပ်လုပ်နေစဉ်အတွင်းမှာ ပရိုဂရမ်ပြီးဆုံးသွားသောအခါ မလိုအပ်တော့သော အချက်အလက်များကို ဖန်တီးလိုသည့်အခါ ရှိတတ်သည်။ ယာယီဖိုင်များနှင့် ဒါရိုက်ထရီများ သည် ဤရည်ရွယ်ချက်အတွက် အသုံးဝင်သည်။ အဘယ်ကြောင့်ဆိုသော် ၎င်းတို့သည် အချိန်ကြာလာသည်နှင့်အမျှ ဖိုင်စနစ်ကို ညစ်ညမ်းစေခြင်း(pollute) မရှိသောကြောင့်ဖြစ်သည်။

package main
import (
    "fmt"
    "os"
    "path/filepath"
)
func check(e error) {
    if e != nil {
        panic(e)
    }
}
func main() {

ယာယီဖိုင်တစ်ခုဖန်တီးရန် အလွယ်ကူဆုံးနည်းလမ်းမှာ os.CreateTemp ကို ခေါ်ခြင်းဖြစ်သည်။ ၎င်းသည် ဖိုင်ကို ဖန်တီးပြီး နှင့် ဖတ်ရန်နှင့်ရေးရန်အတွက် ဖွင့်ပေးသည်။ ပထမ argument အဖြစ် "" ကို ပေးထားသောကြောင့် os.CreateTemp သည် ကျွန်ုပ်တို့၏ OS အတွက် မူလသတ်မှတ်ထားသောနေရာတွင် ဖိုင်ကိုဖန်တီးပေးမည်ဖြစ်သည်။

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

ယာယီဖိုင်၏အမည်ကို ပြသသည်။ Unix-based OS များတွင် ဒါရိုက်ထရီသည် /tmp ဖြစ်နိုင်ချေများသည်။ ဖိုင်အမည်သည် os.CreateTemp သို့ ဒုတိယ argument အဖြစ် ပေးထားသော prefix ဖြင့် စတင်ပြီး ကျန်အပိုင်းကို တပြိုင်နက်ခေါ်ဆိုမှုများသည် အမြဲတမ်း မတူညီသောဖိုင်အမည်များကို ဖန်တီးနိုင်စေရန် အလိုအလျောက်ရွေးချယ်ပေးသည်။

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

ကျွန်ုပ်တို့အသုံးပြုပြီးသောအခါ ဖိုင်ကိုရှင်းလင်းသည်။ OS သည် အချိန်အတန်ကြာပြီးနောက် ယာယီဖိုင်များကို အလိုအလျောက်ရှင်းလင်းဖွယ်ရှိသော်လည်း ၎င်းကို တိကျစွာလုပ်ဆောင်ခြင်းသည် ကောင်းမွန်သောအလေ့အထဖြစ်သည်။

    defer os.Remove(f.Name())

ကျွန်ုပ်တို့သည် ဖိုင်ထဲသို့ အချက်အလက်အချို့ရေးနိုင်သည်။

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

ယာယီဖိုင်အများအပြားရေးရန် ရည်ရွယ်ပါက ယာယီ ဒါရိုက်ထရီ တစ်ခု ဖန်တီးရန် ပိုမိုနှစ်သက်နိုင်သည်။ os.MkdirTemp ၏ argument များသည် CreateTemp နှင့် တူညီသော်လည်း ၎င်းသည် ဖွင့်ထားသောဖိုင်အစား ဒါရိုက်ထရီ အမည် ကို ပြန်ပေးသည်။

    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}, 0666)
    check(err)
}
$ go run temporary-files-and-directories.go
Temp file name: /tmp/sample610887201
Temp dir name: /tmp/sampledir898854668

နောက်ဥပမာ: Embed Directive.