Sobes.tech
Senior

Go tilida fayllarni nusxalash uchun kutubxona uchun jamoat interfeysini (API) loyihalashtiring — funksiyalar va turlar sarlavhalari, dasturchilar uchun imkon qadar qulayroq.

sobes.tech AI

AIdan javob

go package filecopy

import "io"

// CopyFile nusxa ko'chiradi src dan dst ga. // Agar dst mavjud bo'lmasa, yangi fayl yaratiladi. // Nusxa olingan baytlar sonini va xatolikni qaytaradi, agar yuzaga kelsa. func CopyFile(srcPath, dstPath string) (int64, error)

// CopyFileWithOptions qo'shimcha opsiyalar bilan faylni nusxa ko'chiradi. // Masalan, bufferni belgilash, faylni yozib olish yoki ruxsatlarni nusxa ko'chirish mumkin. type CopyOptions struct { Overwrite bool // fayl mavjud bo'lsa, ustiga yozish BufferSize int // nusxa ko'chirish uchun buffer o'lchami, 0 — standart qiymatni ishlatish PreservePermissions bool // ruxsatlarni nusxa ko'chirish }

func CopyFileWithOptions(srcPath, dstPath string, opts CopyOptions) (int64, error)

// Copy io.Reader dan io.Writer ga ma'lumotlarni opsiyalar bilan nusxa ko'chiradi. // Faqat fayllarni emas, har qanday ma'lumot oqimlarini nusxa ko'chirish imkonini beradi. func Copy(dst io.Writer, src io.Reader, opts CopyOptions) (int64, error)


Ushbu interfeys qulay, chunki:
- Asosiy fayl nusxasi uchun CopyFile oddiy usul mavjud.
- Kengaytirilgan opsiyalar bilan yanada nozik sozlash uchun metod mavjud.
- Oqimlar uchun umumiy Copy mavjud, bu esa moslashuvchanlikni oshiradi.
- Turlar va nomlar tushunarli, Go uslubiga mos keladi.