Changement d'extension de multiples fichiers

Résolu
ToxicHayabusa Messages postés 882 Date d'inscription dimanche 7 décembre 2014 Statut Membre Dernière intervention 2 septembre 2018 - 13 avril 2018 à 17:22
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 - 14 avril 2018 à 17:35
Bonjour,

Je rencontre récemment un problème dans un code C#. En effet mon but est de détecter automatiquement tout les fichiers présents dans un dossier donné et d'en changer leur extension.
J'ai donc essayé de faire ceci à partir de ce code :
           
string fExt;
string fnExt = ".xbxo";
string fFromName;
string fToName;

string fPath = @"C:\Users\ToxicHayabusa\Desktop\Test";
FileInfo[] files = new DirectoryInfo(fPath).GetFiles();
foreach (var f in files)
{
fFromName = Path.GetFileNameWithoutExtension(f.Name);

fExt = Path.GetExtension(f.Name);

fFromName = string.Format("{0}", f.Name);

fToName = string.Format("{0}{1}", f.Name, fnExt);

File.Move(fFromName, fToName);

}

Ce code est un mélange que j'ai pu faire à partir de deux codes trouvés sur internet...Malheureusement il ne fonctionne pas comme je le voudrais. En effet, là où ça bloque c'est à la dernière ligne, pour le File.Move, car lorsque la commande est donc censé remplacer les anciens fichiers avec les nouveaux portant la nouvelle extension, celui-ci cherche les fichiers dans le dossier local et non dans le dossier précisé au début du code..

Je ne sais pas si le code est maladroit ou mal fait, malgré mes recherches je n'ai pas trop réussit à comprendre les méthodes utilisé pour tout ça et donc il se peut que le code soit même totalement faux, c'est pour cela que je requiert votre aide, pour m'indiqué là où se trouverait le problème et même corriger mon code si possible.

Merci d'avance.

3 réponses

Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 656
13 avril 2018 à 17:36
Bonjour
trouver des bouts de code sur internet c'est une chose, mais les fusionner sans comprendre c'est pas le mieux.
Pour les comprendre, y'a 2 options (cumulables),

Si tu avais appliqué une seule des ces 2 options, tu n'aurais pas posé cette question, car tu aurais vu que
Path.GetFileNameWithoutExtension(f.Name);
ne retourne que le nom du fichier et pas le chemin complet.

Donc tu aurais peut-être demandé comment changer ton extension et là encore, en lisant la doc en ligne ou même en ayant un peu de curiosité avec la class Path (qu'est ce propose intellisense que je tape Path. ?), tu aurais pu voir la méthode ChangeExtension https://msdn.microsoft.com/en-us/library/system.io.path.changeextension(v=vs.110).aspx

0
ToxicHayabusa Messages postés 882 Date d'inscription dimanche 7 décembre 2014 Statut Membre Dernière intervention 2 septembre 2018
13 avril 2018 à 18:33
Oui ok, sauf que tout ça je l'ai déjà lu au par avant, et que je sais que
Path.GetFileNameWithoutExtension(f.Name);
ne retourne que le nom du fichier. Sauf que j'ai déjà essayé avec une précédente méthode (d'ailleurs la doc de microsoft ne sert pas à grand chose) où j'implémentais le chemin du fichier dans le nom, et le logiciel se contentait de chercher le fichier avec le chemin dans le nom..
0
ToxicHayabusa Messages postés 882 Date d'inscription dimanche 7 décembre 2014 Statut Membre Dernière intervention 2 septembre 2018
Modifié le 13 avril 2018 à 18:35
D'ailleurs au début du code le chemin est déjà préciser
            string fPath = @"C:\Users\ToxicHayabusa\Desktop\Test";
FileInfo[] files = new DirectoryInfo(fPath).GetFiles();

Donc je vois pas où est le problème ? Pour moi, le code est censé toujours chercher les fichiers dans ce chemin, puisqu'il les a bien trouvé au début.
0
Rejoignez-nous