Qt描述路径Qfile时绝对路径不明错误

我日那些看不见的字符!!!
我折腾了2天艹

感谢:\u202a 神奇的控制字符 让我知道了路径不能随便粘贴……

起因是这样的,我想试一下qt的正则表达式截取文件内容,需要QFile取文件路径,结果我习惯性地从文件属性的安全里找对象路径(文件属性->安全->对象名称处复制)
在这里插入图片描述
然后我粘在了一个按钮代码上(正则表达式还没用上呢)

void MainWindow::on_pushButton_clicked()
{
    QString displayString;
    std::string a="‪C:\\Users\\23216\\Desktop\\1.txt";//这是文件属性粘的
//    std::string a="C:\\Users\\23216\\Desktop\\1.txt";//这是手敲的

    QFile file(QString::fromStdString(a));
    qDebug()<<file.errorString();
    qDebug()<<file.fileName();
    if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        qDebug()<<"Can't open the file!"<<endl;
    }
    while(!file.atEnd())
    {
        QByteArray line = file.readLine();
        QString str(line);
        qDebug()<< str;
        displayString.append(str);
    }
}

结果输出是这样的,
在这里插入图片描述

调试时发现前面总有一传诡异字符,这样路径确实不对了
在这里插入图片描述

后来
我试了路径符号,证实了"\\""/"是一样的,只有“\”是单纯的转义字符不正确。

再后来,我不断地试验函数

//QString::fromLocal8Bit() (曾经在Windows上路径的问题这样解决过)
QFile file(QString::fromLocal8Bit("C:\\Users\\23216\\Desktop\\1.txt"));

//string、QString::fromStdString(a)组合,试着去除怪异字符
string a ="‪C:\\Users\\23216\\Desktop\\1.txt"
QString::fromStdString(a)

但是这个字符阴魂不散……我各种搜索绝对路径为什么不管用……证实方向错误是致命的,他会让你缘木求鱼。

再再后来索性直接搜索调试时路径上的奇怪字符
\u202a 神奇的控制字符

再后来手敲了一遍……就成了…………

这让我有了信心——一般来说引用绝对路径的函数不会出错,除非路径出错。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

超自然祈祷

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

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

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

打赏作者

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

抵扣说明:

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

余额充值