Как изменить имя текстового файла в C ++ - PullRequest
10 голосов
/ 24 мая 2011

Я бы хотел изменить имя файла txt, но не могу найти, как это сделать.

Например, я хочу переименовать foo.txt в boo.txt в моей программе на C ++.

Ответы [ 2 ]

21 голосов
/ 24 мая 2011

#include <stdio.h> (или <cstdio>) и используйте rename (или std::rename):

rename("oldname.txt", "newname.txt");

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

4 голосов
/ 24 мая 2011

Поддержка файловой системы заметно отсутствует в стандартной библиотеке C ++ . Как показывает ответ Джерри Коффина, на самом деле в stdio есть функция переименования (вопреки распространенному мнению, которым я поделился). Однако существует много связанных с файловой системой устройств, которые не распространяется на стандартную библиотеку, следовательно, существует Boost :: Filesystem (в частности, управление каталогами и получение информации о файлах).

Это конструктивное решение, чтобы сделать C ++ менее ограниченным (т.е. сделать возможным компиляцию на широком спектре платформ, включая встроенные системы, где идея файла не существует).

Для выполнения файловых операций есть две опции:

  • Использование API целевой ОС

  • Используйте библиотеку, которая предоставляет унифицированный интерфейс для разных платформ

Boost :: Filesystem - это такая библиотека C ++, которая устраняет различия в платформах.

Вы можете использовать Boost :: Filesystem :: rename для переименования файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...