如何在qt上更改文件扩展名

时间:2015-05-05 13:42:40

标签: c++ qt file-extension fileinfo

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

4 个答案:

答案 0 :(得分:15)

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

一种解决方案是找到最后一个'.',并使用所需的子字符串将该位置的子字符串替换为末尾。

究竟如何做到这一点,有许多方法同时使用std::stringQString,因为它们都支持在字符串中查找字符(并从头到尾进行搜索),并替换子串。

答案 3 :(得分: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)