Bonjour à tous,

Je rencontre un pb avec la fonction Path.GetFileName ()
Je l'utilise pour récupérer le nom des fichiers qui correspondent à des item sélectionnés dans une ListeView
Le but: copier ce/ces fichiers dans un autre répertoire

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
private void CopyFile ( ListView.SelectedListViewItemCollection SrcFile )
{
  foreach ( ListViewItem SelectedFile in SrcFile )
  {
string FileName = Path.GetFileName ( SelectedFile.ToString () );
string SourceFile = SourcePath + "\\" + FileName;
string DestFile = DestPath + "\\" + FileName;
File.Copy ( SourceFile, DestFile );
  }
}
le problème c'est qu'en sortie je récupère le FileName avec une accolade à la fin :
DSC_1002.jpg}
donc j'ai légèrement feinter en récupérant le FileName sans extension et en le rajoutant après, tout fonctionnait bien, j'ai continué ce que j'avais à faire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
string Ext = ".jpg";
string FileName = Path.GetFileNameWithoutExtension ( SelectedFile.ToString () )
string SourceFile = SourcePath + "\\" + FileName + Ext;
string DestFile = DestPath + "\\" + FileName + Ext;
et là je vais pour tester ce que j'ai fait et je me retrouve avec une accolade devant le FileName
{DSC_1002.jpg
Bref, je ne vois pas trop d'où vient le problème puisque logiquement la fonction GetFileName devrait bien me donner DSC_1002.jpg
au final je me retrouve à devoir faire un Substring en plus pour récupérer le nom du fichier comme je veux et pouvoir copier mon fichier sélectionné
string FileName = Path.GetFileNameWithoutExtension ( SelectedFile.ToString () ).Substring(2);
Quelqu'un a-t-il déjà rencontré ce problème ? une solution ? est-ce que ca vient du fait que j'utilise l'item sélectionné d'une listeview ?
y a-t-il une autre méthode plus adaptée ? car même si ce que j'ai fait n'est peut être par super optimisé, ca fait un peu "crade" d'enlever l'extension pour la remettre ensuite

Merci d'avance pour vos avis
(j'utilise VS 2005 Framework 2.0)