137 votes

Changer l'extension d'un fichier en utilisant C#

J'ai de nombreux types de fichiers : pdf, tiff, jpeg, bmp. etc. Ma question est la suivante : comment puis-je changer l'extension des fichiers ? J'ai essayé ceci :

my file= c:/my documents/my images/cars/a.jpg;
string extension = Path.GetExtension(myffile);
myfile.replace(extension,".Jpeg");

Quel que soit le type de fichier, le format que je spécifie doit correspondre au nom du fichier. Mais cela ne fonctionne pas. J'obtiens le chemin du fichier à partir du navigateur comme c:\..\..\a.jpg et le format du fichier est a.jpeg . Donc, quand j'essaie de le supprimer, il me donne une erreur : Cannot find the file on specified path' . Je pense donc qu'il y a un rapport avec l'extension de fichier qui ne correspond pas. J'essaie donc de convertir .jpg à .jpeg et supprimez ensuite le fichier.

302voto

Alex Points 19487

C'est le cas : Path.ChangeExtension méthode. Par exemple :

var result = Path.ChangeExtension(myffile, ".jpg");

Dans le cas où vous voulez également changer physiquement l'extension, vous pourriez utiliser File.Move méthode :

File.Move(myffile, Path.ChangeExtension(myffile, ".jpg"));

24voto

Michiel Overeem Points 1750

Vous devriez faire un déplacement du fichier pour le renommer. Dans votre exemple de code, vous ne modifiez que la chaîne de caractères, pas le fichier :

myfile= "c:/my documents/my images/cars/a.jpg";
string extension = Path.GetExtension(myffile); 
myfile.replace(extension,".Jpeg");

vous ne modifiez que monfichier (qui est une chaîne de caractères). Pour déplacer le fichier réel, vous devez faire

FileInfo f = new FileInfo(myfile);
f.MoveTo(Path.ChangeExtension(myfile, ".Jpeg"));

Voir FileInfo.MoveTo

12voto

JAiro Points 2587

Essayez ceci.

filename = Path.ChangeExtension(".blah") 

dans votre affaire :

myfile= c:/my documents/my images/cars/a.jpg;
string extension = Path.GetExtension(myffile);
filename = Path.ChangeExtension(myfile,".blah") 

Vous devriez aussi regarder ce post :

http://msdn.microsoft.com/en-us/library/system.io.path.changeextension.aspx

4voto

skaz Points 5579

GetFileNameWithoutExtension, comme son nom l'indique, ne renvoie pas l'extension du fichier. Dans votre cas, il ne renvoie que "a". Vous voulez ajouter votre ".Jpeg" à ce résultat. Cependant, à un autre niveau, cela semble étrange, car les fichiers d'image ont des métadonnées différentes et ne peuvent pas être convertis aussi facilement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X