1Future Ответов: 2

Как переименовать/добавить имя файла в C#?


Всем Привет,
Для некоторых это может быть довольно просто, но я изо всех сил пытаюсь понять, как этого достичь.

У меня есть список изображений вроде этого:

var renamedFiles = new List<ImageModel>();
var list = new List<> {'image1.jpg', 'Image2.jpg', image3.jpg};

int fileCount = 0;
foreach(var image in list)
{
    fileCount++;
  //I want to append each file name with the file count number;
  //so i would like to rename for example "image1.jpg" using the filecount.
 // for example : "image1.jpg" to be renamed to "image1_1.jpg" 
//so in order to achieve this i need to do something like: image1 "_" +fileCount+ .jpg
    renamedFiles.Add(image)
}

Любая помощь будет оценена по достоинству.

Что я уже пробовал:

Я думаю, что мне нужно разделить имя файла и вставить счетчик между именем файла и jpg, но я не уверен, как это сделать.

2 Ответов

Рейтинг:
9

Jochen Arndt

См. Класс Пути (System.IO)[^].

Вы можете разделить путь с помощью GetDirectoryName(), GetFileNameWithoutExtension(), и GetExtension() и построить новый путь из них и добавить счетчик к имени файла без расширения. Обратите внимание, что GetDirectoryName() возвращает каталог без завершающего символа разделения. Поэтому вы должны добавить это или использовать Combine() метод.


Рейтинг:
14

OriginalGriff

Есть несколько способов сделать это, но самый простой-использовать Path.GetFileNameWithoutExtension и Path.GetExtension:

string filename = "image1.jpg";
int fileCount = 1;
string renameTo = string.Format("{0}_{1}{2}", Path.GetFileNameWithoutExtension(filename),
                                              fileCount,
                                              Path.GetExtension(filename));

Обратите внимание, что если ваши изображения содержат путь, вам также нужно будет добавить его в файл.


1Future

Спасибо

OriginalGriff

Всегда пожалуйста!