1. 程式人生 > >Qt5處理絕對路徑中含中文的檔案方法

Qt5處理絕對路徑中含中文的檔案方法

最近在試著用中科院的分詞工具試著做點東西,

沒想到上來就遇到那麼蛋疼的事,

找了一下午,艱苦的要死。。。

解決問題的關鍵:使用了一個QByteArray的類

QDir mDir("E:/myTest/Test cases");
        foreach(QFileInfo mItm,mDir.entryInfoList())
        {
            if(mItm.isDir())
            {

                QDir mDir2(mItm.absoluteFilePath());
                foreach(QFileInfo mItm2,mDir2.entryInfoList())
                    if(mItm2.isFile())
                    {
                        //qDebug()<<mItm2.fileName().toStdString().c_str();
                        QByteArray byteArray1 = mItm2.absoluteFilePath().toLocal8Bit();
                        char * absoluteFilePath = byteArray1.data();
                        QByteArray byteArray2 = mItm2.fileName().toLocal8Bit();
                        char * name = byteArray2.data();
                        NLPIR_FileProcess(absoluteFilePath,name,0);
                  }

            }
            if(mItm.isFile())
            {
                QByteArray  t1= mItm.absoluteFilePath().toLocal8Bit();
                char * absoluteFilePath = t1.data();
                QByteArray t2 = mItm.fileName().toLocal8Bit();
                char * name = t2.data();
                NLPIR_FileProcess(absoluteFilePath,name,0);
            }
        }