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;
相關文章
相關標籤/搜索