Qt5.9获取指定文件所在文件夹路径和文件名称(lastIndexOf())

本文主要用Qt5.9代码总结获取指定文件所在的文件夹路径和文件名称,比如获取指定文件E:/test.txt,具体内容如下所述。

一、核心函数讲解

主要用到的核心函数如下:

const int QString::lastIndexOf(const QString &s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive);

函数int QString::lastIndexOf(QString &s)的功能是在QString中,从最后一个字符开始往前搜索,搜索第一个跟字符串s相同的内容,并且将这个内容在QString中的位置返回。

与之相反的是另一个搜索函数int QString::IndexOf(QString &s)。该函数的功能是从第一个字符开始往后搜索,搜索第一个跟字符串s相同的内容,并且将这个内容在QString中的位置返回。

比如下面代码:

    QString str="E:/test.txt";    
    int index=str.lastIndexOf("/"); //index==2

 

二、主要代码如下:

    /*打开一个dialog对话框,选择一个文件*/
    QString str = QFileDialog::getOpenFileName();
    if(str.isEmpty())
    {
        return;
    }
    QFile file(str);
    qDebug()<<"str=="<<str;
    if(!file.open(QFile::ReadOnly))
    {
        return;
    }
    QCryptographicHash hash(QCryptographicHash::Md5);
    if(!file.atEnd())
    {
        hash.addData(file.readAll());
    }
    QString md5;
    md5.append(hash.result().toHex());
    qDebug()<<md5;

    /*根据选中文件的路径,获取所在文件夹路径和文件名称,且在文件名后面加入一串字符_MD5*/
    QString pathStr=str.left(str.lastIndexOf("/")); //str=="E:/test.txt" pathStr=="E:/"
    QString nameTxt=str.right(str.length()-str.lastIndexOf("/"));
    QString nameMD5Txt=nameTxt.left(nameTxt.lastIndexOf("."))+"_MD5.txt";   //nameMD5Txt=="test_MD5.txt"
    QString dir=pathStr+nameMD5Txt; //dir== "E:/test_MD5.txt"
    qDebug()<<"dir=="<<dir;

 

 

参考内容:

https://www.cnblogs.com/superit/p/3837635.html(参考:lastIndexOf()和IndexOf())

https://www.cnblogs.com/hhxxgdd/p/8524586.html(参考:lastIndexOf())

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

三公子Tjq

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

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

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

打赏作者

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

抵扣说明:

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

余额充值