Déplacer un fichier

Problème

Vous voulez déplacer un fichier à un autre endroit.

Solution

Sur un même système de fichiers, utilisez rename(). Si l’original et la copie se trouvent sur deux systèmes de fichiers différents, effectuez une copie (avec la recette précédente) puis supprimez le fichier original avec unlink().

Discussion

Sur un même système de fichiers, l’opération de déplacement consiste uniquement à supprimer une entrée dans le répertoire du fichier original, et à en ajouter une dans le répertoire de la copie. Le fichier en lui-même n’est pas touché.

Si l’opération a lieu sur deux systèmes différents, elle n’est pas possible comme décrite ci-dessus. Le fichier doit être recopié sur le nouveau système de fichiers. Par conséquent, le fichier original n’ayant plus lieu d’être, supprimez-le avec unlink(). Pour savoir si les systèmes de fichiers de l’original et de la copie sont les mêmes, dans le cadre d’un déplacement, le plus simple est d’utiliser rename() et de voir, si erreur il y a, si errno correspond à EXDEV. Si aucune erreur ne survient, le déplacement a eu lieu. Si cette erreur se manifeste, alors copiez puis supprimez l’original. Cela donne :


if (rename (original, copie)) 
  { 
    if (EXDEV == errno) 
      { 
        if (0 == copy (original, copie)) unlink...
Pour consulter la suite, découvrez le livre suivant :
couv_EI3CACT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Copier un fichier
Suivant
Supprimer un fichier