2014-11-07 2 views
-1

Я создаю программу Borland C++ для своего школьного проекта, которая создает текстовый файл и позволяет пользователю создавать собственную HTML-страницу, выбирая входные данные из меню. Есть ли способ переименовать полученный текстовый файл, чтобы он имел расширение .html, поэтому, когда я закрываю программу на C++, он сохраняет файл с расширением .html напрямую?Проблема с обработкой файлов Borland C++ 5.02

+0

Оставив в стороне проблему использования действительно действительно старого компилятора, можете ли вы опубликовать часть своего кода? Это графическое приложение? Я хотел бы подумать, что вы используете диалог сохранения файла Windows с расширением «.txt» как значение по умолчанию или что-то связанное, но мы не можем быть уверены, если вы не дадите более подробную информацию. – SirDarius

+0

Нет, это не приложение для графического интерфейса. Простите за мою плохую информацию, я начинаю с этого:/ – pranavnairtech

+0

Тогда я предполагаю, что это должна быть простая проблема при написании файла с использованием 'std :: fstream', но опять же, не может быть уверен, если вы не опубликуете некоторый код. – SirDarius

ответ

0

Возможно, будет проще просто открыть файл с точным именем файла и расширением, которое вы хотите, а не переименовать файл впоследствии. Однако есть случаи, когда вы захотите сделать это, например, записать во временный файл, чтобы сохранить существующий файл в случае ошибки. Если это так, есть варианты. К сожалению, нет никаких возможностей в библиотеках , чтобы выполнить это, и вам нужно будет полагаться либо на вызовы системы, либо на использование библиотеки, такой как Boost, которая абстрагирует это. Так как вы находитесь в Windows, вы можете использовать вызовы Windows API MoveFile или MoveFileEx.

if(!MoveFile("originalfilename.txt", "newfilename.html")) 
{ 
    DWORD errorCode = GetLastError(); 

    // ... handle error code here ... 
} 
0

Команда system выполняет команду в командной строке. Таким образом, вы могли бы сделать что-то вроде:

system("ren output.txt output.html"); 

В вашем случае вам, вероятно, нужно сделать некоторые конкатенацию, чтобы вставить правильные имена файлов в строку, содержащую команду DOS, которую система для выполнения.

Смежные вопросы