rss
[C] renommer un fichier
par neolistic
 Fil de Discussions
Statut : Non résolu
mercredi 25 octobre 2006 à 00:07:41
Bonjour à tous!

Je veux faire un programme de renommage automatique de fichiers en C sur linux:
Questions surement idiotes:
- Comment renommer un fichier sans le copier?
- Est ce que ce renommage permet un "déplacement"?
- Comment m'y prendre pour trouver tout seul ce genre de fonctionnalités lorsqu'elles ont déjà été implémentés?(pas trop de docs contrairement à java...)

Merci!
A+ Si tu crois etre perdu, revient sur tes pas.
Répondre à neolistic  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par mamiemando, le mercredi 25 octobre 2006 à 00:19:45 Fil de Discussions
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 :
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
Répondre à mamiemando

2


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Par neolistic, le mercredi 25 octobre 2006 à 09:49:19 Fil de Discussions
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! Si tu crois etre perdu, revient sur tes pas.
Répondre à neolistic

3


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Par Char Snipeur, le mercredi 25 octobre 2006 à 17:30:21 Fil de Discussions
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
http://www.cppreference.com/
où d'ailleur la fonction rename est lister (dans "All C functions") Salutation !
Char Snipeur
Répondre à Char Snipeur

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par mamiemando, le mercredi 25 octobre 2006 à 18:52:35 Fil de Discussions
Ah je connaissais pas cette focntion ! Très sympathique et nettement plus propre que ma solution ;)
Répondre à mamiemando

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par neolistic, le mercredi 25 octobre 2006 à 20:46:08 Fil de Discussions
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! Si tu crois etre perdu, revient sur tes pas.
Répondre à neolistic

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par mamiemando, le jeudi 26 octobre 2006 à 00:20:24 Fil de Discussions
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
Répondre à mamiemando

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Char Snipeur, le jeudi 26 octobre 2006 à 08:48:29 Fil de Discussions
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? Salutation !
Char Snipeur
Répondre à Char Snipeur

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par mamiemando, le jeudi 26 octobre 2006 à 15:22:33 Fil de Discussions 
man fstat
man opendir
man readdir
man closedir


Bonne chance
Répondre à mamiemando
Discussions pertinentes trouvées dans le forum
03/06 18h07Comment renommer un fichier?Programmation03/06 18h263
24/05 18h05gtk créer un fichier renommableProgrammation08/06 17h101
28/01 16h51Comment renommé des centaine de fichier ?Windows28/01 20h564
21/05 13h35programmation c renommer un fichierWindows21/05 14h241
Plus de discussions sur « [C] renommer un fichier » Discussion en cours Discussion fermée Problème résolu
Logiciels pertinents trouvés dans les téléchargements
Télécharger PDF Creator 0.9.5PDF Creator - PDF Creator est un outil gratuit permettant de créer des PDF à partir de presque n'importe quelle application capable...Catégorie: PDF
Licence: Open Source
Télécharger Switch Sound Format Converter 1.05Switch Sound Format Converter - Switchest un convertisseur de formats audio pour Windows ou Mac, capable de convertir des fichiers audio à partir de...Catégorie: Conversion audio
Licence: Freeware/gratuit
Télécharger SMV convert Tool 1.0.0.1SMV convert Tool - SMV convert tool est un petit utilitaire graphique permettant de transformer très facilement des fichiers au format AVI, WMV...Catégorie: Edition vidéo
Licence: Freeware/gratuit
Télécharger MP3Tag 2.37aMP3Tag - Mp3tag est un éditeur de Métatags (ID3 tags) pour la plupart des formats audio courants. Il est capable de renommer un grand...Catégorie: Marquage (ID3)
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « [C] renommer un fichier »
Répondre
Titre du message :
Votre pseudo:
Votre email :
Message: 
  •  
  •  
Options: Recevoir les réponses par mail.
 

Aide