IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Renommer des fichiers


Sujet :

C

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Agent Sécurité Incendie
    Inscrit en
    Janvier 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Agent Sécurité Incendie

    Informations forums :
    Inscription : Janvier 2021
    Messages : 1
    Par défaut Renommer des fichiers
    Bonjour tout le monde. Je me prénomme Denis. C'est la première fois que je poste sur le site. Je suis un nouveau sur le site. À l'époque, je m'étais intéressé à la programmation, simplement pour le plaisir. Voilà voilà. Je ne sais pas sis je suis au bon endroit sur le Forum. Par avance, pardon pour les fautes d'orthographes. Je me permets de vous écrire pour vous faire part d'un léger souci que je rencontre. Je vous dis tout :

    Je cherche à réaliser un programme en C [Sachez que mes connaissances sont rudimentaire, mais je comprends au moins les principes de base du fonctionnement de la programmation] qui puisse renommer des fichiers dans un dossier sous Windows.

    Je sais qu'il existe des logiciels qui réalise déjà ce travail. J'utilise personnellement "Ant Renamer". Seulement voilà, je vais vous dire pourquoi il ne me suffit pas.

    J'ai dans certain dossier de mon ordinateur des fichiers. Personnellement, j'organise l'intégralité des fichiers dans mon Pc. Je range tout. Je renomme tout. JE ne pense pas être fou, je crois que nous somme nombreux à faire de la sorte.

    J'ai gardé une habitude depuis une brève utilisation de Linux de mettre des tirets underscore " _ " au lieux des espaces dans mes noms de fichiers. De mettre des majuscules à chaque début de mot, etc.

    Bref, mon problème avec les logiciels pour renommer, c'est qu'ils sont très rébarbatif et qu'ils m'obligent à chaque fois de leurs dire encore et encore ce que j'aimerais qu'ils fassent. Le problème de ces logiciels, c'est qu'ils ne peuvent pas garder nos choix. Et qu'il faut les rentrer à chaque fois. Je vous donne des exemples.

    J'aimerai écrire un programme où je pourrai lui dire que dès qu'il rencontre un espace, il me le transforme en " _ ", aussi que s'il rencontre un espace qui précède une lettre minuscule, il me la transforme en majuscule, exemple :

    J'ai beau avoir cherché sur des forums sur divers sites, je ne trouve pas ce que je recherche. J'ai beau avoir lu des PDF en programmation en C avec des commandes comme *strcmp*, mais je ne réussi pas à réaliser ce que je veux.

    En simple, il faudrait que je réussie à faire un programme qui lit tous les noms de fichier dans un dossier, qui les passes dans des boucles qui chercheraient à remplacer les caractères non souhaité par ceux que je lui aurais donné, exemple :

    [ & ] = [_Et_]
    [Je renomme cette phrase] = [Je_Renomme_Cette_Phrase]
    [C'est la fin.] = [C'Est_La_Fin]
    [date_-_heure] = [Date-Heure]
    [Audio. ( compositeur ) , titre_-_chanson_- annee & date_-_] = [Audio_[Compositeur],_Titre-Chanson-Année_Et_Date-]

    Ce que j'aurai demandé dans le programme, c'est que les points soient supprimés, l'espace après la parenthèse aussi, que les parenthèse soient remplacée par des *[ ou ]*, que les signes comme *-_-* soient remplacés juste par le tiré, que les doubles *e* soient remplacés par des *ée*, qu'un espace avant un virgule soit supprimé, etc. Vous voyez un peu ce que je recherche ?

    Par mesure de sécurité, il faudrait aussi que le programme me marque l'ancien nom du fichier dans un TxT avec son nouveau nom de remplacement, comme cela, si jamais il me fait une erreur, je pourrais toujours le renommer comme avant et procéder à la renommer du fichier manuellement si le programme n'arrive vraiment pas à le faire. Il faudrait aussi que des choix puissent être rajoutés dans les boucles, si jamais je devais compléter la manière de renommer mes fichiers dans le futur.

    Je suis à votre écoute si jamais vous aviez la ou une solution.

    Par avance, merci bien d'avoir tenu compte de mon souci. Et encore pardon pour les fautes d'orthographe.

  2. #2
    Membre expérimenté

    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2012
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 324
    Par défaut
    Bonjour,

    Tu auras besoin des "expressions rationnelles" (Perl est très bien adapté pour cela)... tu peux le faire en C aussi.
    Il y a un tuto sur les expressions rationnelles (régulières en Belge) sur ce forum, il me semble.

    En gros tu indiques ce que tu cherches (tu constitues un pattern) dans le nom du fichier et par quoi il faut le remplacer.

  3. #3
    Membre expérimenté

    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2012
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 324
    Par défaut
    J'ai fai tun truc plus ou moins similaire pour renommer des centaines de clips mp4 téléchargés pour mes cours (et aussi pour ma tronche: des documentaires ARTE etc... qui sont supprimés au bout d'un mois qui sont pas trop mauvais).

    Je l'ai partagé à l'adresse: https://drive.google.com/file/d/1qpk...ew?usp=sharing

    Les librairies utilisées sont disponibles sur https://github.com/truesoundlord/sai...ter/linkedlist

    Maintenant sous windows je te souhaite bien du plaisir, je n'ai encore rien validé en terme de portabilité de mon code ^^
    Normalement les fonctions que j'utilises sont POSIX donc ça doit tourner sous MinGW.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 141
    Billets dans le blog
    4
    Par défaut
    Vouloir faire ça en C est vraiment pas ouf, mais en plus si on maîtrise pas le langage, je vois pas l'intérêt.
    C'est par contre un truc très simple à faire en Python, ou autre langage de script qui intègre les regexp de base et permet de lister le contenu d'un dossier et le parcourir.
    Après faut juste bien réfléchir à son pattern. Et dans ton cas, ça a pas l'air simple, vu que tu remplaces l'espace par _, mais parfois le supprime, etc. Enfin ça c'est à toi de décider et voir ce que tu fais réellement et adapter.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

Discussions similaires

  1. Supprimer / Renommer des fichiers
    Par mick030118 dans le forum C
    Réponses: 2
    Dernier message: 18/03/2006, 19h24
  2. renommer des fichiers
    Par avantoux dans le forum Windows
    Réponses: 4
    Dernier message: 27/12/2005, 17h01
  3. Renommer des fichiers
    Par Cathy dans le forum Linux
    Réponses: 3
    Dernier message: 12/09/2005, 18h24
  4. [LG]programme qui renomme des fichiers
    Par Ne0taku dans le forum Langage
    Réponses: 9
    Dernier message: 16/02/2005, 22h18
  5. [] [Réseau] Renommer des fichiers dans un site FTP
    Par JerBi dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 22/08/2003, 01h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo