как мне изменить расширение файла на QT

У меня есть кусок кода для загрузки файла с сервера. Однако из-за ограничений сервера я не могу поместить файл .exe на сервер. Поэтому я переименовываю свой файл XXX.exe в XXX.alt (просто случайное расширение) и помещаю его на сервер.
Теперь мой код может загрузить XXX.alt, но как я могу изменить имя файла с XXX.alt обратно на XXX.exe, когда в среде QT?

2

Решение

Просто используйте функцию переименования из ‘stdio.h’.

char oldname[] ="XXX.alt";
char newname[] ="XXX.exe";
result= rename( oldname , newname );
if ( result == 0 )
puts ( "File successfully renamed" );
else
perror( "Error renaming file" );
1

Другие решения

Используйте QFileInfo, чтобы получить путь без последнего расширения, затем добавьте новое расширение.

QFileInfo info(fileName);
QString strNewName = info.path() + "/" + info.completeBaseName() + ".exe";
14

Одним из решений является поиск последнего '.'и замените подстроку из этой позиции в конец нужной подстрокой.

Как это сделать, есть много способов использовать оба std::string а также QString, поскольку оба поддерживают поиск символов в строке (и также выполняют поиск от конца до начала) и заменяют подстроки.

0

Предпочитаю использовать baseName ()

QFileInfo info(fileName);
QString strNewName = info.path() + info.baseName() + ".exe";

QString QFileInfo::completeBaseName () const
Returns file name with shortest extension removed (file.tar.gz -> file.tar)

QString QFileInfo::baseName () const
Returns file name with longest extension removed (file.tar.gz -> file)
0
По вопросам рекламы [email protected]