Philip Kirkbride Philip Kirkbride - 3 months ago 21
C++ Question

Convert qint64 to QString

With other types I could easily do something like

mitm.created().toString("yyyy-MM-dd")


Is there a similar function to turn a qint64 into a QString? You can find the code below.

fileArray.append("[");
foreach(QFileInfo mitm, mDir.entryInfoList(QDir::Files)){
fileArray.append("{\"filePath\": \"");
fileArray.append(mitm.absoluteFilePath());
fileArray.append("\",");
fileArray.append("\"fileCreated\": \"");
fileArray.append(mitm.created().toString("yyyy-MM-dd"));
fileArray.append("',");
fileArray.append("'fileSize': '");
// fileArray.append(mitm.size());
fileArray.append("\"}");
if(fileCount!=mDir.entryInfoList(QDir::Files).count()-1){ fileArray.append(","); }
fileCount++;
}
fileArray.append("]");


I've commented out the line which breaks the code. I had the same problem with date but used toString to convert it. I was hoping there would be a similar solution for qint64.

Answer

You will need to write the following code for that:

fileArray.append("[");
foreach(QFileInfo mitm, mDir.entryInfoList(QDir::Files)){
    fileArray.append("{\"filePath\": \"");
    fileArray.append(mitm.absoluteFilePath());
    fileArray.append("\",");
    fileArray.append("\"fileCreated\": \"");
    fileArray.append(mitm.created().toString("yyyy-MM-dd"));
    fileArray.append("',");
    fileArray.append("'fileSize': '");
    fileArray.append(QString::number(mitm.size()));
    fileArray.append("\"}");
    if(fileCount!=mDir.entryInfoList(QDir::Files).count()-1){ fileArray.append(","); }
    fileCount++;
}
fileArray.append("]");

See the documentation of the QString::number(...) static methods for details, starting here. You will need the variant matching qint64 which is the qlonglong override.

Comments