Déplacement et remplacement de fichiers

Avant qu’une opération de copie puisse être effectuée, le fichier source doit être fermé ou ouvert uniquement pour lecture. Aucun thread ne peut avoir le fichier source ouvert pour l’écriture. Pour copier un fichier existant vers un nouveau fichier, utilisez la fonction CopyFile ou CopyFileEx . Les applications peuvent spécifier si CopyFile et CopyFileEx échouent si le fichier de destination existe déjà. Si le fichier de destination existe et est ouvert, il doit avoir été ouvert avec les autorisations de partage applicables. Pour plus d’informations, consultez CreateFile.

La fonction CopyFileEx permet également à une application de spécifier l’adresse d’une fonction de rappel (voir CopyProgressRoutine) appelée chaque fois qu’une autre partie du fichier a été copiée. L’application peut utiliser ces informations pour afficher un indicateur qui indique le nombre total d’octets copiés en pourcentage de la taille totale du fichier.

La fonction ReplaceFile remplace un fichier par un autre fichier, avec la possibilité de créer une copie de sauvegarde du fichier d’origine. La fonction conserve les attributs du fichier d’origine, tels que son heure de création, les listes de contrôle d’accès et l’attribut de chiffrement.

Un fichier doit également être fermé avant qu’une application puisse le déplacer. Les fonctions MoveFile et MoveFileEx copient un fichier existant vers un nouvel emplacement et suppriment l’original.

La fonction MoveFileEx permet également à une application de spécifier comment déplacer le fichier. La fonction peut remplacer un fichier existant, déplacer un fichier sur plusieurs volumes et retarder le déplacement du fichier jusqu’à ce que le système d’exploitation soit redémarré.