2013-09-24 8 views
6

Con altri tipi ho potuto facilmente fare qualcosa di simileConverti qint64 a QString

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

Esiste una funzione simile a trasformare un qint64 in una QString? Puoi trovare il codice qui sotto.

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

ho commentato la linea che rompe il codice. Ho avuto lo stesso problema con la data ma ho usato toString per convertirlo. Speravo che ci sarebbe stata una soluzione simile per qint64.

+0

'std :: to_string' – syam

+0

Stai cercando di convertirlo in una data stringa, o ottieni una rappresentazione in stringa del numero? – Chris

+0

Sto provando a convertirlo in una stringa che contiene le dimensioni del file. Non sono sicuro di come applicare le risposte suggerite al mio codice. –

risposta

4

Sarà necessario scrivere il codice seguente per questo:

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

Vedi la documentazione dei metodi statici QString::number(...) per i dettagli, a partire here. Avrai bisogno della variante corrispondente a qint64 che è l'override di qlonglong.

3

risposta più generale, perché un sacco di gente viene qui a cercare di trovare la risposta alla domanda esatta nel titolo:

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