QT 磁盘&文件 教程05-修改文件名称、目录名称、文件属性

【1】修改文件名称

bool RenameFile(QString filePath, QString newName){
    QFile file(filePath);
    QFileInfo fileInfo(file);
    QString path = fileInfo.dir().absolutePath();
    QFile fileNew(newName);
    QFileInfo fileInfoNew(fileNew);
    QString fileExtensionNew = fileInfoNew.suffix();
    if (fileExtensionNew .isEmpty()) newName += ".txt"; //限定文件扩展名(例如txt)
    if (file.exists()) {
           if (file.rename(path + "/" + newName)) {
                return true;
           }
    }        
    else
    {
            qDebug()<<"原文件不存在";
            return false;
    }
}

【2】修改目录名称

bool RenameDir(QString filePath, QString newName){
    QFile file(filePath);
    QFileInfo fileInfo(file);
    QString path = fileInfo.dir().absolutePath();
    QFile fileNew(newName);
    QFileInfo fileInfoNew(fileNew);
    QString fileExtensionNew = fileInfoNew.suffix();
    if (fileInfo.isDir())
    {
        if (!fileExtension.isEmpty())
        {
            qDebug<<"目录输入格式不正确\n";
            return false;
        }
        if (file.exists()) {
            if (file.rename(path + "/" + newName)) {
                return true;
            }
        }
    }
}

【3】修改文件只读属性

方法一:

QFileInfo fileInfo(filePath);
if (fileInfo.exists() && fileInfo.isWritable()) {
        // 尝试修改文件权限
        QFile::setPermissions(fileInfo.absoluteFilePath(), QFile::ReadOwner | QFile::ReadUser | QFile::ReadGroup | QFile::ReadOther);
}

方法二:

QProcess process;
#ifndef  _Linux
#define  _Linux
   process.start("attrib +R \"" + filePath + "\"");
#endif   
   process.start("chmod a-w " + filePath);
process.waitForFinished();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

notfindjob

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值