Преобразование 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 будет аналогичное решение.


person Philip Kirkbride    schedule 24.09.2013    source источник
comment
Вы пытаетесь преобразовать его в строку даты или получить строковое представление числа?   -  person Chris    schedule 25.09.2013
comment
Я пытаюсь преобразовать его в строку, содержащую размер файла. Я не уверен, как применить предложенные ответы к моему коду.   -  person Philip Kirkbride    schedule 25.09.2013


Ответы (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.

person lpapp    schedule 25.09.2013

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

person RA.    schedule 24.09.2013

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

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