تمرين إعادة البناء
File Backup Copy
أعد كتابة برنامج Go ينسخ ملفا إلى نسخة احتياطية.
go
~18 دقيقة
متوسط
أعد بناء الكود
Rebuild
هذا هو الكود. اكتبه بنفسك.
الكود المرجعي
package main
import (
"fmt"
"io"
"os"
"path/filepath"
)
func copyFile(source, destination string) error {
input, err := os.Open(source)
if err != nil {
return err
}
defer input.Close()
output, err := os.Create(destination)
if err != nil {
return err
}
defer output.Close()
_, err = io.Copy(output, input)
return err
}
func main() {
dir, err := os.MkdirTemp("", "go-rebuild-backup-*")
if err != nil {
fmt.Println("error:", err)
return
}
defer os.RemoveAll(dir)
source := filepath.Join(dir, "notes.txt")
backup := filepath.Join(dir, "notes.txt.bak")
if err := os.WriteFile(source, []byte("small tools deserve backups\n"), 0o644); err != nil {
fmt.Println("error:", err)
return
}
if err := copyFile(source, backup); err != nil {
fmt.Println("error:", err)
return
}
data, err := os.ReadFile(backup)
if err != nil {
fmt.Println("error:", err)
return
}
fmt.Print(string(data))
}اكتب هنا