GetFileName() et résultat incohérent
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:
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 :
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:
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 :calim2:
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é
Citation:
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 :lol:
Merci d'avance pour vos avis
(j'utilise VS 2005 Framework 2.0)