如何在Qt中派生新的基本文件名
How to derive a new base file name in Qt?
在保留目录和扩展名的同时,在Qt中仅重命名给定文件路径的基本文件名的最佳/最标准方法是什么?
有没有标准的方法可以做到这一点,或者我只使用正则表达式?
假设我有:
/home/user/myfile.png
它将更改为:
/home/user/myfile-modified.png
使用 QFileInfo 解析路径的各个方面。
QFileInfo original("/home/user/myfile.png");
QString newPath = original.canonicalPath() + QDir::separator() + original.baseName() + "-modified";
if (!original.completeSuffix().isEmpty())
newPath += "." + original.completeSuffix();
警告:如果您的文件名以"."结尾,但没有扩展名,则会删除"."。换句话说,/home/user/myfile.
将重命名为 /home/user/myfile-modified
.否则,这应该有效。
未经过测试,但这可能有效:
const char* filePath = "/home/user/myfile.png";
QFileInfo file(filePath);
QDir dir = file.dir();
QString baseName = file.baseName();
QString baseNameModified = ...; // insert here your logic for modifying filename
QFileInfo fileModified(dir, baseNameModified);
QString filePathModified = fileModified.filePath();
相关文章:
- 为什么使用 "this" 指针调用派生成员函数?
- 从命令行c++发送文本文件名
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 在派生函数中指定void*参数
- 如何通过派生类函数更改基类中的向量
- 如何委托派生类使用其父构造函数?
- 如何使用单独文件中的派生类访问友元函数对象
- 派生类销毁的最佳实践是什么
- 如何使用基类指针引用派生类成员
- 派生类是否可以在抽象工厂设计模式中具有数据成员
- 为什么文件名被设置为一个点,而不是在读取矢量中的文件名时
- 使用基类指针创建对象时,缺少派生类析构函数
- 如何引用基类的派生类?
- 存储模板类型以强制转换回派生<T>
- 需要从 istream 和 ostream 派生 iostream
- 在 C++ 中用派生类型重写成员函数
- 具有多个类、派生类的C++正向声明
- 有没有一种"cleaner"的方法可以在指向基的指针向量中找到派生类的第一个实例?
- 如何在Qt中派生新的基本文件名