Преобразование qint64 в QString

С другими типами я мог бы легко сделать что-то вроде

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

есть ли аналогичная функция для превращения qint64 в QString? Вы можете найти код ниже.

    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("]");

Я прокомментировал строку, которая нарушает код. У меня была такая же проблема с датой, но я использовал toString для ее преобразования. Я надеялся, что будет аналогичное решение для qint64.

3 ответов


для этого вам нужно будет написать следующий код:

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("]");

см. документацию QString::number(...) статические методы для деталей, начиная с здесь. Вам понадобится вариант, соответствующий qint64, который является переопределением qlonglong.


вы, вероятно, ищете QString::number(qlonglong, int).


более общий ответ, потому что многие люди пытаются найти ответ на точный вопрос в названии:

QDateTime lm = QFileInfo(QFile(current)).lastModified();
qint64 epoch = lm.toMSecsSinceEpoch();
QString str = QString::number(epoch); // actual conversion