QDir::rename:冗余参数
QDir::rename : redundant parameters?
我使用的是QT 5.7,从文档:
bool QDir::rename(const QString &oldName, const QString &newName)
为什么我要指定目录的oldName ?它不是现在的名字吗?我正在考虑这个重载函数:
bool QDir::rename(const QString &newName){
return this->rename(this->dirName(), newName);
}
API是否指向当前目录的子目录?
QDir::rename
不重命名目录本身,它重命名目录中的一个元素。第一个参数选择要重命名的元素。
要重命名由绝对路径给出的目录项,请使用静态QFile::rename(const QString &oldName, const QString &newName)
。
要重命名目录本身,您需要这样做:
bool renameDir(QDir & dir, const QString & newName) {
auto src = QDir::cleanPath(dir.filePath("."));
auto dst = QDir::cleanPath(
dir.filePath(QStringLiteral("..%1%2").arg(QDir::separator()).arg(newName)));
auto rc = QFile::rename(src, dst);
if (rc) dir.setPath(dst);
return rc;
}
不,这不是多余的。QDir
可以指定一个目录下存在多个文件。例如,考虑目录"mydir/"
,其中有文件a.txt
和b.txt
。因此,使用下面的代码片段,我们可以根据它们的旧名称重命名它们。
QDir dir("mydir");
dir.rename("a.txt", "aa.txt");
dir.rename("b.txt", "bb.txt");
相关文章:
- 如何擦除冗余输入?
- 使用提升几何缓冲区缩放多边形时的冗余折点
- 我应该担心冗余声明吗?
- Qt的slot(?)将冗余命名空间插入连接
- 方法冗余移动调用的移动语义
- 使用 llvm 和本地值编号算法擦除冗余表达式
- 优化堆上创建的冗余变量
- 如何消除访客模式冗余?
- 表达式模板需要冗余重载
- C++,处理多个构造函数重载和冗余代码
- 使用模板基类消除工厂类派生类冗余的干净方法
- 连接两个文件时如何避免冗余尾随换行符?
- CMake:修改共享库时的冗余链接
- 提升精神 X3:"属性没有预期的大小"冗余
- 将二进制文件加载到eigen矩阵中时,请删除潜在的冗余模板参数
- 我是否应该通过传递冗余参数来避免隐式行为
- 避免指定包含模板化函数指针的冗余模板参数
- c++大多是违反DRY的冗余默认和参数化构造函数
- QDir::rename:冗余参数
- 用户界面-GUI和文本模式C++设计,以消除冗余(可选参数?功能过载?)