[C] renommer un fichier
Fermé
neolistic
Messages postés
93
Date d'inscription
samedi 7 mai 2005
Statut
Membre
Dernière intervention
10 juillet 2007
-
25 oct. 2006 à 00:07
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 26 oct. 2006 à 15:22
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 26 oct. 2006 à 15:22
A voir également:
- [C] renommer un fichier
- Fichier rar - Guide
- Fichier host - Guide
- Renommer plusieurs fichiers - Guide
- Fichier iso - Guide
- Comment réduire la taille d'un fichier - Guide
8 réponses
mamiemando
Messages postés
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
25 oct. 2006 à 00:19
25 oct. 2006 à 00:19
Renommer = Déplacer si le fichier reste sur le même device
Pour renommer/déplacer un fichier le plus simple c'est de le faire directement dans une console shell :
Le C te permet de d'appeler une fonction shell facilement. Tape dans google ou dans une console :
pour voir comment ça marche.
Bon évidemment c'est pas top car ton programme ne pourra marcher que sous linux mais bon... Au fait pourquoi veux tu faire ça en C car ce n'est pas le langage le plus adapté, par exemple comparé à du bash.
Bonne chance
Pour renommer/déplacer un fichier le plus simple c'est de le faire directement dans une console shell :
mv ancien_nom nouveau_nom
Le C te permet de d'appeler une fonction shell facilement. Tape dans google ou dans une console :
man execvp man popen
pour voir comment ça marche.
Bon évidemment c'est pas top car ton programme ne pourra marcher que sous linux mais bon... Au fait pourquoi veux tu faire ça en C car ce n'est pas le langage le plus adapté, par exemple comparé à du bash.
Bonne chance
neolistic
Messages postés
93
Date d'inscription
samedi 7 mai 2005
Statut
Membre
Dernière intervention
10 juillet 2007
6
25 oct. 2006 à 09:49
25 oct. 2006 à 09:49
Je veux faire ca en C car le nom du fichier se construit à partir de données à l'intérieur de celui ci (TAG d'un mp3) et je ne sais pas lire précisément un fichier en bash (et je ne sais meme pas si c'est possible)
J'ai effectivement pensé à l'appel de mv avec exec mais je voudrais vraiment savoir comment on peut le faire au niveau systeme!
J'ai effectivement pensé à l'appel de mv avec exec mais je voudrais vraiment savoir comment on peut le faire au niveau systeme!
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
25 oct. 2006 à 17:30
25 oct. 2006 à 17:30
il existe une fonction rename() en C
int rename (const char*, const char*);
dans "stdio.h"
Si tu veux savoir comment elle est faite, regarde les sources des lib de gcc.
sinon, pour trouver les fonctions quand tu ne les connait pas, il y a deux solutions :
au pif dans le man (man -k rename, man -k move)
ou sur quelques site
https://en.cppreference.com/w/
où d'ailleur la fonction rename est lister (dans "All C functions")
int rename (const char*, const char*);
dans "stdio.h"
Si tu veux savoir comment elle est faite, regarde les sources des lib de gcc.
sinon, pour trouver les fonctions quand tu ne les connait pas, il y a deux solutions :
au pif dans le man (man -k rename, man -k move)
ou sur quelques site
https://en.cppreference.com/w/
où d'ailleur la fonction rename est lister (dans "All C functions")
mamiemando
Messages postés
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
25 oct. 2006 à 18:52
25 oct. 2006 à 18:52
Ah je connaissais pas cette focntion ! Très sympathique et nettement plus propre que ma solution ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
neolistic
Messages postés
93
Date d'inscription
samedi 7 mai 2005
Statut
Membre
Dernière intervention
10 juillet 2007
6
25 oct. 2006 à 20:46
25 oct. 2006 à 20:46
C'est super!
Merci beaucoup!
Mais je ne suis pas convaincu par le man -k.
Par exemple, je cherchais une fonction pour savoir si un fichier est un répertoire et ben j'ai pas trouvé ni dans man -k ni dans cppreference, au final j'ai trouvé dans le code source de la commande mv: lstat!
Merci beaucoup!
Mais je ne suis pas convaincu par le man -k.
Par exemple, je cherchais une fonction pour savoir si un fichier est un répertoire et ben j'ai pas trouvé ni dans man -k ni dans cppreference, au final j'ai trouvé dans le code source de la commande mv: lstat!
mamiemando
Messages postés
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
26 oct. 2006 à 00:20
26 oct. 2006 à 00:20
man mv man ls
Mais il y a une fonction en C pour tester si un fichier est un répertoire... Je ne me souviens plus du nom par contre.
Bonne chance
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
26 oct. 2006 à 08:48
26 oct. 2006 à 08:48
j'ai pas dit que c'était infaillible le "man -k" mais ça peut aider à trouver une fonction quand on sait ce qu'elle fait. (si la fonction existe)
sinon, quand tu ouvre ton flux de fichier, tu as un FILE*
Ceci est une structure. N'y aurait-il pas un des membre de cette struct qui dirait si c'est un fichier ou non?
sinon, quand tu ouvre ton flux de fichier, tu as un FILE*
Ceci est une structure. N'y aurait-il pas un des membre de cette struct qui dirait si c'est un fichier ou non?
mamiemando
Messages postés
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
26 oct. 2006 à 15:22
26 oct. 2006 à 15:22
man fstat man opendir man readdir man closedir
Bonne chance