Sobes.tech
Senior

Návrh verejného rozhrania (API) knižnice na kopírovanie súborov v Go — hlavičky funkcií a typov, čo najpohodlnejšie pre vývojárov.

sobes.tech AI

Odpoveď od AI

go package filecopy

import "io"

// CopyFile kopíruje súbor zo src do dst. // Ak dst neexistuje, vytvorí sa nový súbor. // Vráti počet skopírovaných bajtov a chybu, ak nastane. func CopyFile(srcPath, dstPath string) (int64, error)

// CopyFileWithOptions kopíruje súbor s dodatočnými možnosťami. // Napríklad, možno špecifikovať buffer, či prepísať súbor, kopírovať oprávnenia atď. type CopyOptions struct { Overwrite bool // či prepísať súbor, ak existuje BufferSize int // veľkosť bufferu pre kopírovanie, 0 — použiť predvolenú hodnotu PreservePermissions bool // kopírovať oprávnenia }

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

// Copy kopíruje dáta z io.Reader do io.Writer s možnosťami. // Umožňuje kopírovať nielen súbory, ale aj akékoľvek dátové toky. func Copy(dst io.Writer, src io.Reader, opts CopyOptions) (int64, error)


Táto rozhranie je pohodlná, pretože:
- Existuje jednoduchá metóda CopyFile pre základné kopírovanie súborov.
- Existuje rozšírená metóda s možnosťami pre jemnejšie nastavenie.
- Existuje univerzálny Copy pre toky, čo zvyšuje flexibilitu.
- Používajú sa zrozumiteľné typy a názvy, v súlade so štýlom Go.