Concevez une interface publique (API) de bibliothèque pour copier des fichiers en Go — en-têtes de fonctions et types, aussi pratiques que possible pour les développeurs.
sobes.tech IA
Réponse de l'IA
go package filecopy
import "io"
// CopyFile copie un fichier de src à dst. // Si dst n'existe pas, un nouveau fichier est créé. // Retourne le nombre d'octets copiés et une erreur si elle se produit. func CopyFile(srcPath, dstPath string) (int64, error)
// CopyFileWithOptions copie un fichier avec des options supplémentaires. // Par exemple, vous pouvez spécifier un tampon, si écraser le fichier, copier les permissions, etc. type CopyOptions struct { Overwrite bool // si écraser le fichier s'il existe BufferSize int // taille du tampon pour la copie, 0 — utiliser la valeur par défaut PreservePermissions bool // copier les permissions }
func CopyFileWithOptions(srcPath, dstPath string, opts CopyOptions) (int64, error)
// Copy copie des données de io.Reader à io.Writer avec options. // Permet de copier non seulement des fichiers, mais aussi tous les flux de données. func Copy(dst io.Writer, src io.Reader, opts CopyOptions) (int64, error)
Cette interface est pratique parce que :
- Il existe une méthode simple CopyFile pour la copie de fichiers de base.
- Il y a une méthode étendue avec options pour une configuration plus fine.
- Il existe un Copy universel pour les flux, ce qui augmente la flexibilité.
- Des types et noms compréhensibles sont utilisés, conformes au style Go.