У меня есть кусок кода для загрузки файла с сервера. Однако из-за ограничения сервера я не могу поместить файл .exe на сервер. Поэтому я переименую файл XXX.exe в XXX.alt (просто произвольное расширение) и помещаю его на сервер. Теперь мой код может скачать XXX.alt, но как я могу изменить имя файла из XXX.alt обратно в XXX.exe, когда в среде QT?как изменить расширение файла на qt
ответ
Просто используйте функцию rename от '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");
Одним из решений является поиск последнего '.'
и замена подстроки с этой позиции до конца на нужную подстроку.
Как это сделать, существует множество способов использования как std::string
, так и QString
, так как обе они поддерживают поиск символов в строке (и выполняют поиск от конца до начала), а также заменяют подстроки.
Используйте QFileInfo для получения пути без последнего расширения, а затем добавьте новое расширение.
QFileInfo info(fileName);
QString strNewName = info.path() + "/" + info.completeBaseName() + ".exe";
Я думаю, что это нужно разделитель: 'QString strNewName = info.path() + "/" + информация. completeBaseName() + ".exe"; 'В Linux путь, возвращенный из' QFileInfo :: path() ', не включает разделитель в конце. – Mitch
@Mitch Спасибо. Исправлена. – drescherjm
предпочитают использовать 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)
- 1. Как изменить расширение файла?
- 2. Изменить расширение файла/путь
- 3. Как изменить расширение файла конфигурационного файла (C#)
- 4. Как изменить расширение файла местоположения файла
- 5. изменить расширение файла?
- 6. изменить расширение файла в партии
- 7. Изменить регистр файла QT Moc
- 8. Как изменить расширение файла с помощью java
- 9. Как изменить расширение файла, Windows/Проводник Windows
- 10. Как изменить расширение файла для зависимостей
- 11. Как изменить расширение файла с помощью Python?
- 12. Как изменить расширение файла «.ipa» на «.zip» в asp.net
- 13. Как изменить расширение файла на верхний регистр в CVS?
- 14. Как изменить расширение имени файла, сохраненное в строке на C++?
- 15. Intellij - Как изменить расширение файла файла из среды IDE?
- 16. Как получить расширение файла файла на Java?
- 17. как переименовать имя файла и изменить расширение файла
- 18. изменить расширение файла JSON в struts 2
- 19. MySQL изменить расширение файла в текстовом столбце
- 20. QT: изменить имя встроенного исполняемого файла
- 21. запрос на расширение файла
- 22. Пакетное создание файла - изменить расширение, удалить строку
- 23. найти xargs mac изменить расширение файла
- 24. изменить расширение obfuscate Содержимое файла XML
- 25. Grunt: изменить расширение файла при сборке
- 26. изменить расширение файла, когда пользователь достаточно на странице
- 27. Перенаправить расширение файла 301 на не расширение
- 28. Расширение интерфейса Qt при необходимости
- 29. Вы можете помочь мне изменить расширение файла?
- 30. Изменить расширение библиотеки?
В Qt это будет 'QFile :: rename (const QString & oldName, const QString & newName)', хотя код c, который вы опубликовали, должен работать нормально. – drescherjm
Вы оба правы. Благодарю. и я узнал, что нам даже не нужно ставить oldName. мы можем просто QFile (const QString & newName) –