Мне нужна помощь в переименовании некоторых изображений в каталоге, расположенном по адресу /images/graphicsLib/.
Все имена изображений в / graphicsLib / имеют соглашение об именах, которое выглядит следующим образом:
400-60947.jpg. Мы называем «400» часть файла префиксом, а мы называем «60957» суффиксом. Полное имя файла мы называем sku.
Так что, если вы видите содержимое / graphicLib /, оно будет выглядеть так:
400-60957.jpg
400-60960.jpg
400-60967.jpg
400-60968.jpg
402-60988.jpg
402-60700.jpg
500-60725.jpg
500-60733.jpg
и т.д ...
Используя C # & System.IO, каков приемлемый способ переименования всех файлов изображений на основе префикса имени файла? Пользователи должны иметь возможность ввести текущий префикс, просмотреть все изображения в / graphicsLib /, которые соответствуют, а затем ввести новый префикс, чтобы переименовать все эти файлы с новым префиксом. Переименовывается только префикс файла, остальная часть имени файла должна быть неизменной.
Что у меня пока есть:
//enter in current prefix to see what images will be affected by
// the rename process,
// bind results to a bulleted list.
// Also there is a textbox called oldSkuTextBox and button
// called searchButton in .aspx
private void searchButton_Click(object sender, EventArgs e)
{
string skuPrefix = oldSkuTextBox.Text;
string pathToFiles = "e:\\sites\\oursite\\siteroot\\images\graphicsLib\\";
string searchPattern = skuPrefix + "*";
skuBulletedList.DataSource = Directory.GetFiles(pathToFiles, searchPattern);
skuBulletedList.DataBind();
}
//enter in new prefix for the file rename
//there is a textbox called newSkuTextBox and
//button called newSkuButton in .aspx
private void newSkuButton_Click(object sender, EventArgs e)
{
//Should I loop through the Items in my List,
// or loop through the files found in the /graphicsLib/ directory?
//assuming a loop through the list:
foreach(ListItem imageFile in skuBulletedList.Items)
{
string newPrefix = newSkuTextBox.Text;
//need to do a string split here?
//Then concatenate the new prefix with the split
//of the string that will remain changed?
}
}