Bonjour, je souhaite déplacer renommer et déplacer un fichier quelles fonctions dois-je utiliser ?
merci
Version imprimable
Bonjour, je souhaite déplacer renommer et déplacer un fichier quelles fonctions dois-je utiliser ?
merci
Tu as aussi la focntion rename()
et la fonction rename en C a priori fait les deux non?
Je ne pense pas que ce soit garanti par le standard car celui-ci ne sait pas ce qu'est un dossier, mais c'est le cas aussi bien sous POSIX que sous Windows.
Lorsque je fais le rename j'ai cette erreur :
oldpath et newpath ne sont pas sur le même système de fichiers monté. (Linux permet à un système de fichiers d’être monté en plusieurs endroits, mais
link(2) ne traverse pas les différents points de montage, même si le même système de fichier est monté sur chacun d’eux.)
Pour passer d'un système de fichiers monté à l'autre, j'ai bien peur que tu n'aies besoin de copier le fichier et supprimer l'original...
oui mais ta méthode prend plus de temps !! ç m'embête
Le problème, c'est que c'est peut-être bien la seule méthode.
+1
Le renommage d'un fichier consiste à déplacer une référence (inode ou entrée de répertoire) d'un répertoire vers l'autre. Mais ce déplacement ne peut se faire qu'au sein d'un même file system car le fichier lui même n'est pas déplacé.
Par contre, si tu change de file system (passage du disque C: vers D: pour dire simple), l'entrée dans le répertoire ET le fichier doivent être déplacés, donc cela pase par un "copy" suivi d'un "delete"
donc j'ai pas le choix je suis nobligé de copier le contenu d'un fichier dans le fichier situé au noivel emplacement?
T'as déjà déplacé un gros fichier d'une partition (d'un système de fichiers) à une autre ? Je parle d'un simple clic droit > couper > coller, pas de programmation. Qu'est-ce que tu constates ? Comment cette opération est-elle programmée d'après toi ?Citation:
Envoyé par Watier_53
Répondu au moins 4 fois.Citation:
Envoyé par Watier_53
Juste pour dire que pour une fois (ca mérite d'être souligné :mouarf:), MS fait bien les choses...
rename() est mappée sur MoveFile() qui déplace le fichier vers une cible pouvant être sur un autre lecteur/FS (pour les répertoire cela doit rester sur le même lecteur)...
Pour être plus précis : MoveFile (de Windows) permet de déplacer un fichier. Déplacer un fichier consiste à copier le fichier puis supprimer l'original ou simplement, si le FS cible est le même que le FS source, à renommer le fichier.
La fonction rename du C permet de renommer un fichier. Il n'y a pas de fonction déplacer en C mais selon l'implémentation, cette opération peut être prise en charge par la fonction rename. Il n'y a pas de fonction "Rename" sous Windows car cela est fait avec MoveFile.Code:
1
2
3
4
5
6
7
8
9 Fonction MoveFile(source, dest) Debut Si source et dest font référence à un même FS Alors Renommer(source, dest) Sinon Copier(source, dest) Supprimer(source) FinSi Fin