Групповое переименование файлов
Вот присылают мне всякое на публикацию, а там говно в комплекте картиночки в количестве от 0 до 20. И каждый раз я ручками их переименовывал, чтобы удобнее было со всем этим безобразием работать. Но в очередной момент подумал: "Хватит это терпеть!" — и решил набросать что-нибудь быстренько, чтобы потом переименовывать всякое сразу скопом и по нажатию на хоткей какой-нибудь, который сам и настрою.
В общем, без лишних разговоров:
using System;
using System.Diagnostics;
using System.IO;
namespace renamer
{
internal class Program
{
static void Main(string[] args)
{
var stopwatch = new Stopwatch();//создаем и
stopwatch.Start();//запускаем счетчик
string[] files = Directory.GetFiles(@".", "*.*", SearchOption.TopDirectoryOnly);//читаем файлы в текущем каталоге
for (int i = 0; i < files.Length; i++)//ограничиваемся размером массива
{
string name = files[i];//берём имя файла
name = name.Remove(0, 2);//отсекаем от него ./
int founddot = name.IndexOf('.');//находим положение точки
string extension = name.Remove(0, founddot);//и оставляем только расширение
if (extension == ".exe")
{
Console.WriteLine(name + " — Программы мы переименовывать не собирались");
}
else if (i < 10)
{
System.IO.File.Move(files[i], "0" + i + extension);//я люблю когда всё аккуратно
Console.WriteLine(name + " renamed to 0" + i + extension);//так что допишем нолик к числам от 0 до 9
}
else if (i <= 10 && i < 100)
{
System.IO.File.Move(files[i], i + extension);//а тут уже
Console.WriteLine(name + " renamed to " + i + extension);//стесняться не будем
}
else
{
Console.WriteLine("Я на такое количество файлов не рассчитывал");//серьезно, мне столько за раз не присылают
}
}
stopwatch.Stop();//останавливаем счетчик
Console.WriteLine("done in " + stopwatch.ElapsedMilliseconds + " ms" + "\n" + "press any key");//смотрим сколько времени ушло на обработку
Console.ReadKey();
}
}
}
Да, шарп. Можно было бы и на крестиках сделать, но я не хотел тратить время, а в крестиках, чтобы работать со списками файлов и переименовывать их — только в C++17 появились более-менее стандартизированные инструменты — до этого каждый лепил горбатого кто во что горазд — boost это, либо ещё что-то, что подключается дополнительно...
И, да, примеры работы:
И, да, работает это с любыми файлами, не только с изображениями.
В общем, скачать, если вам оно надо — можете в разделе "программы", а я побежал дальше страдать хернёй работать.


