у меня есть этот фрагмент кодаКак заменить 2 файла?
private List<string> FolderOne(string Folder)
{
string filena;
DirectoryInfo dir = new DirectoryInfo(Folder);
FileInfo[] files = dir.GetFiles("*.mp3", SearchOption.AllDirectories);
List<string> str = new List<string>();
foreach (FileInfo file in files)
{
str.Add(file.FullName);
filena = file.FullName;
filena.Replace("*.mp3", "*.jpg");
if (filena.Length > 0)
{
pictureBox1.Image = new System.Drawing.Bitmap(filena.ToString()); //I receive a error "Parameter is not valid."
}
}
return str;
}
Моя цель состояла в том, чтобы прочитать Изображение коробки с file.fullname «.mp3" в той же папке, но заканчиваются» .jpg», Infact у меня есть 2 файла в папка первая - это песня «firstsong.mp3», а вторая - «firstsong.jpg». Разница между ними - это окончательное расширение, поэтому я пытаюсь сделать так, чтобы на картинке отображалось то же имя файла, но с расширением ». * jpg" и я получаю сообщение об ошибке «Параметр недействителен». в строке кода "pictureBox1.Image = new System.Drawing.Bitmap (filena.ToString());". Как я могу это решить? Спасибо за внимание
Nice уважением
-1. Я думаю, рекомендую использовать строку use.Replace для пути - это ужасная практика. Если у названия есть другие экземпляры «.mp3» (например, любой путь к каталогу или имя файла), * все * эти экземпляры будут заменены, а не только расширение, которое он пытается сделать. Кроме того, Replace чувствителен к регистру, что может привести к неправильным результатам. –
Я на самом деле согласен - использование метода ChangeExtension на пути является лучшей практикой, чем замена строки. Я больше сфокусировался на объяснении, почему его не сработало, меньше на то, чтобы дать ему другой, но, вероятно, лучший подход. –
Я расстегнул -1, но эта информация, вероятно, должна быть в самом ответе, а не в комментариях. –