QString截断(string截断)

最近写一个Qt小程序用到了QString的截断,在绝对路径中取文件的名字,再拼接到新路径中,用到了两个方法:

方法一:因为对QString没有深刻了解,因此采用的QString-->string-->QString,代码以下:

 1         std::string pur = purposelist[i].toStdString();//都转换为string  2        // qDebug()<<pur<<endl;
 3         std::string sdir = dstpath.toStdString();  4 
 5         int pos = pur.find_last_of('/'); //找到最后/
 6         std::string s(pur.substr(pos + 1));  7         sdir.append("/");  8 
 9  sdir.append(s); 10         QString qsdir = QString(QString::fromLocal8Bit(sdir.c_str())); 11         qDebug() << qsdir << endl;

用这种方法出现的问题是,string中的中文字符转到QString会乱码...

 

方法二:QString直接进行截断拼接(吐了,我好蠢)

1     //QString截断学习
2     QString src("E:/qq接收文件/MobileFile/thumb/碎裂收据.jpg"); 3     qDebug()<<"original path: "<<src<<endl; 4     QString dir("E:/目标文件夹"); 5     qDebug()<<"the last string '/' pos is "<<src.lastIndexOf('/')<<endl; 6     QString filename = src.right(src.size() - (src.lastIndexOf("/")+1)); 7     qDebug()<<"the true filename is "<<filename<<endl;
相关文章
相关标签/搜索