QT, sprawdzenie rozmiaru pliku przed pobraniem

QT, sprawdzenie rozmiaru pliku przed pobraniem
Blooser
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 5 lat
0

Heja!

Czy da się w QT sprawdzić ile będzie zajmował wybrany plik przed pobraniem?

Czego bym potrzebował?

Blooser
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 5 lat
0

Okay, poradziłem sobie! :<

QNetworkReply posiada w SIGNAL metode:

Kopiuj
downloadProgress(qint64 bytesReceived, qint64 bytesTotal)

Gdzie wystarczy przeliczyć bytesTotal na czytelniejszy format

Kopiuj
QString downloaderWidget::sizeHuman(qint64 fileSize){
    QStringList sizeExt;
    sizeExt << "KB" << "MB" << "GB" << "TB";

    QStringListIterator it(sizeExt);
    QString units("bytes");

    float num = fileSize;

    while(num >= 1024.0 && it.hasNext()){
        units = it.next();
        num /= 1024.0;
    }
    return QString().setNum(num, 'f', 2) + " " + units;
}
edytowany 1x, ostatnio: Blooser
MarekR22
Moderator C/C++
  • Rejestracja:prawie 18 lat
  • Ostatnio:minuta
3

Qt 5.10 wprowadziło gotowe rozwiązanie:

Kopiuj
QLocale locale = this->locale();
QString valueText = locale.formattedDataSize(sizeValue);

Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.