RENAME |
Renommer |
---|---|
Langage C++ | cstdio (stdio.h) |
Syntaxe
int rename(const char *anciennom,const char *nouveaunom) |
Paramètres
Nom | Description |
---|---|
anciennom | Ce paramètre permet d'indiquer l'ancien nom du fichier |
nouveaunom | Ce paramètre permet d'indiquer le nouveau nom du fichier |
Description
Cette fonction permet de renommer un fichier.
Remarques
- La fonction rename() change le nom du fichier spécifié par anciennom en nouveaunom. Le nouveau nom ne doit correspondre à aucune entrée de répertoire existante.
- La fonction rename() renvoie zéro en cas de succès et différente de zéro en cas d'erreur.
- Définition et utilité : La fonction rename est définie dans la bibliothèque <cstdio> (ou <stdio.h>) et permet de renommer un fichier ou de déplacer un fichier vers un nouveau chemin. Elle prend en entrée deux chaînes de caractères représentant le nom actuel du fichier et son nouveau nom (ou chemin). Cette fonction est utile pour renommer des fichiers dans les systèmes de fichiers compatibles.
- Renommer et déplacer des fichiers : La fonction rename peut non seulement être utilisée pour changer le nom d'un fichier, mais aussi pour le déplacer d'un répertoire à un autre. Si le nouveau nom contient un chemin différent du chemin actuel, rename déplace le fichier vers ce nouveau chemin tout en le renommant. Cette fonctionnalité permet de manipuler facilement les fichiers sans avoir besoin de copier et de supprimer manuellement les fichiers.
- Comportement en cas d'échec : Si l'opération de renommage échoue, rename retourne une valeur différente de zéro, et vous pouvez utiliser la fonction perror pour obtenir une description de l'erreur, ce qui peut vous aider à diagnostiquer la cause de l'échec. Les raisons courantes d'échec incluent des problèmes de permission, des chemins invalides, ou des fichiers inexistants. Exemple de gestion d'erreur :
- Systèmes de fichiers et restrictions : rename fonctionne principalement sur les systèmes de fichiers supportant cette opération, mais son comportement peut varier en fonction des systèmes d'exploitation sous-jacents. Par exemple, certains systèmes de fichiers peuvent interdire le renommage ou le déplacement de fichiers ouverts ou verrouillés. Il est donc important de s'assurer que le fichier n'est pas utilisé par un autre programme lors de l'exécution de rename.
- Impact sur les répertoires : Bien que rename soit principalement utilisée pour les fichiers, elle peut également être utilisée pour renommer des répertoires dans certains systèmes de fichiers. Cependant, si vous tentez de déplacer un répertoire dans un autre système de fichiers (par exemple, entre deux disques différents), rename échouera, car cette opération n'est pas prise en charge sur plusieurs systèmes de fichiers distincts.
- Portabilité et compatibilité : La fonction rename est disponible dans le standard C++ et est portable entre différents systèmes d'exploitation comme Windows et Linux. Cependant, les comportements peuvent légèrement différer entre les systèmes. Par exemple, sous Windows, rename échouera si le fichier de destination existe déjà, tandis que sous Linux, le fichier de destination sera écrasé sans avertissement.
- Alternatives et considérations : Si rename échoue, il peut être préférable d'utiliser une approche plus robuste en deux étapes : d'abord copier le fichier à son nouvel emplacement, puis supprimer l'ancien fichier. Cela garantit que le fichier reste disponible, même en cas d'échec de l'opération de renommage. Utiliser des bibliothèques modernes comme std::filesystem en C++17 ou ultérieur permet également d'effectuer ces opérations avec une interface plus sécurisée et fonctionnelle, offrant une gestion plus simple et des fonctions supplémentaires.
Voir également
Langage de programmation - C++ - Référence de procédures et fonctions - remove
Langage de programmation - C - Référence de procédures et fonctions - rename
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 734.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 210.
Dernière mise à jour : Lundi, le 3 août 2015