• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

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

Задача:
Переименовать все файлы в текущей директории.

Решение:
Для начала создадим обычное Windows Forms приложение, после чего на форму поместим одну кнопку и один control folderBrowserDialog, который переименуем в fbd.

Поместите код в обработчик события Button.Click
C#:
private void button1_Click(object sender, EventArgs e)
{
//с помощью диалога выбираем папку с файлами
DialogResult result = fbd.ShowDialog();
if (result == DialogResult.OK)
{
//Получить все файлы в папке
string [] files = Directory.GetFiles(fbd.SelectedPath);
int ind = 0;
for (int i=0; i < files.Length; i++)
{
//поиск индекса последнего слеша
ind = files[i].LastIndexOf('\\');
//переименование
File.Move(files[i], files[i].Remove(ind + 1) + i +".txt");
}
MessageBox.Show("Готово!");
}
}


Основные моменты

Добавьте строку:
C#:
using System.IO;
1. Получаем все файлы в выбранной директории и загоняем их в массив.
Содержимое массива files:
C#:
files[0] = C:\ff\Текстовый документ.txt
files[1] = C:\ff\Текстовый документ(2).txt
Как видно в массиве храниться полный путь к каждому файлу.

2. Переименование файла будет осуществляться при помощи метода Move, в который передается два параметра: полный путь к файлу, который нужно перенести или переименовать и новый путь + новое имя файла, либо текущий путь + новое имя файла.
Так как в этом примере файл перемещать не требуется, то изменим лишь только имя файла.
C#:
File.Move(@"C:\ff\Текстовый документ.txt", @"C:\ff\0.txt");
3. Первый параметр у нас уже есть, он хранится в массиве files, осталось получить второй параметр.

Для начала нужно удалить старое имя файла
C:\ff\ - путь Текстовый документ - имя файла .txt - расширение

Воспользуемся методом LastIndexOf(), который в строке
C:\ff\Текстовый документ.txt

найдет индекс последнего слеша после чего, используя метод Remove, удалим всё, что идёт после него.
C:\ff\Текстовый документ.txt -> C:\ff\

После чего добавляем новое имя файла и расширение.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!