10

对于其他类型,我可以轻松地做类似的事情

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 会有类似的解决方案。

4

3 回答 3

14

您可能正在寻找QString::number(qlonglong, int).

于 2013-09-24T22:04:32.880 回答
6

更笼统的回答,因为很多人来到这里试图找到标题中确切问题的答案:

QDateTime lm = QFileInfo(QFile(current)).lastModified();
qint64 epoch = lm.toMSecsSinceEpoch();
QString str = QString::number(epoch); // actual conversion
于 2016-08-28T22:54:44.063 回答
5

您需要为此编写以下代码:

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 覆盖。

于 2013-09-25T07:12:56.590 回答