我如何更改qt上的文件扩展名

how do i change a file extension on qt

我有一段代码可以从服务器下载文件。但是,由于服务器限制,我无法将 .exe 文件放在服务器上。所以我将我的 XXX.exe 文件重命名为 XXX.alt(只是一个随机扩展名)并将其放在服务器上。 现在我的代码可以下载XXX.alt,但是在QT环境下如何将文件名从XXX.alt改回XXX.exe?

一个解决方案是找到最后一个'.',然后用你想要的子串替换从那个位置到最后的子串。

具体怎么做,有很多方法可以同时使用 std::string and QString,因为它们都支持在字符串中查找字符(也支持从末尾到开头进行搜索)和替换子字符串。

使用 QFileInfo 获取没有最后一个扩展名的路径,然后附加新的扩展名。

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

只需使用 '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" );

更喜欢使用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)