Единственный способ что-то подобное сделать с текстовым файлом — записать во временный файл, затем заменить этим временным старый. Так что будет что-то типа (пишу на псевдо-C++)
открыть исходный и временный файлы
if (std::getline(исходный, s)) {
подкорректировать s
временный << s << std::endl;
while (std::getline(исходный, s) {
временный << s << std::endl;
}
закрыть оба файла
уничтожить исходный
переименовать временный
}
Главная проблема — юникодные имена файлов, которых у вас, надеюсь, нет.
Ну и, разумеется, не забудьте про метку порядка байтов, если она в файлах есть.