Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / QT QFile отображает не верный размер файла / 17 сообщений из 17, страница 1 из 1
18.04.2016, 05:29
    #39217709
Картежник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QT QFile отображает не верный размер файла
помогите, дедлайн на носу. остановился на не понятной проблеме. в QFile указываю путь до торрент файла размер которого 18882байт это показывает винда и трекер на который загружается сам торрент файл. но когда загружаю через QT то происходит ошибка,трекер не принимает его. видимо из за того что размер файла не правильный (16384байт), и возможно QByteArray что то искажает может не в той кодировке. в QT проверяю размер файла через file->size(), а также размер QByteArray массива и там показывает 16384байта. при создании торрент файла использовалась функция bencode может она там что то химичит, кто знает?
...
Рейтинг: 0 / 0
18.04.2016, 05:43
    #39217711
Картежник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QT QFile отображает не верный размер файла
даже проверял через
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 QByteArray fileContent;//(file.readAll());
  char *c=new char[1024];
  int allcount=0,count=0;
  while (!file.atEnd()) {
      count=file.read(c,1024);
      allcount+=count;
      fileContent.append(c,count);
  }
  qDebug()<<"allcount="<<allcount<<" fcontcount="<<fileContent.size();



результат
allcount= 16384 fcontcount= 16384

также отображается на трекер сервере.
а когда загружаю через специальную страницу загрузки то все правильно проходит
...
Рейтинг: 0 / 0
18.04.2016, 10:22
    #39217841
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QT QFile отображает не верный размер файла
Считывание символов из текстового файла может быть не равно подчету
байтов. Например BOM может быть проигнорирован.
...
Рейтинг: 0 / 0
18.04.2016, 10:56
    #39217874
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QT QFile отображает не верный размер файла
И цифра 16384 она уж сильно круглая получилась. Строго кратная 1024 или 2048. Возможно
у тебя цикл организован неправильно и ты где-то "проглотил" последнюю итерацию.
...
Рейтинг: 0 / 0
18.04.2016, 11:21
    #39217908
NekZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QT QFile отображает не верный размер файла
Картежник,

А чем QFile::readAll не угодил? Что ты передавал в QFile::open?
...
Рейтинг: 0 / 0
18.04.2016, 12:05
    #39217980
Картежник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QT QFile отображает не верный размер файла
NekZКартежник,

А чем QFile::readAll не угодил? Что ты передавал в QFile::open?
а там такой же результат был. пока сделал по костыльному, так как программа находится на том же компе, буду передавать просто путь к файл. подкорректировал немного скрипт php. а проблему чуть позже буду решать
...
Рейтинг: 0 / 0
18.04.2016, 12:10
    #39217993
Картежник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QT QFile отображает не верный размер файла
NekZКартежник,

А чем QFile::readAll не угодил? Что ты передавал в QFile::open?

в QFile::Open передавал путь до торрент-файла
...
Рейтинг: 0 / 0
18.04.2016, 12:18
    #39218012
Картежник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QT QFile отображает не верный размер файла
maytonИ цифра 16384 она уж сильно круглая получилась. Строго кратная 1024 или 2048. Возможно
у тебя цикл организован неправильно и ты где-то "проглотил" последнюю итерацию.

разделил, действительно круглое число 16
потом разделил 18882 получилось 18.43945
получается там не одна итерация пропущена,а 2,5
но как писал выше QFile::readAll() тот же результат возвращает.
кстати поначалу торрент файл действительно весил 16384(в винде показыавла этот размер, а на трекере 18882),. затем после каких то действий стал 18882. но при считывании через QFile показывает 16384.
...
Рейтинг: 0 / 0
18.04.2016, 12:18
    #39218013
NekZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QT QFile отображает не верный размер файла
Картежникв QFile::Open передавал путь до торрент-файла
Это-то понятно. Больше интересуют флаги OpenMode , которые ты передал
...
Рейтинг: 0 / 0
18.04.2016, 13:58
    #39218132
Картежник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QT QFile отображает не верный размер файла
NekZКартежникв QFile::Open передавал путь до торрент-файла
Это-то понятно. Больше интересуют флаги OpenMode , которые ты передал

QFile::ReadOnly
...
Рейтинг: 0 / 0
18.04.2016, 13:59
    #39218133
Картежник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QT QFile отображает не верный размер файла
NekZКартежникв QFile::Open передавал путь до торрент-файла
Это-то понятно. Больше интересуют флаги OpenMode , которые ты передал
а также QIODevice::ReadOnly
...
Рейтинг: 0 / 0
18.04.2016, 14:08
    #39218144
NekZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QT QFile отображает не верный размер файла
Картежник а также QIODevice::ReadOnly
QFile::ReadOnly резолвится в QIODevice::ReadOnly, так как QFile наследуется от QIODevice. Так что, считай, что ты один и тот же флаг задаёшь дважды.

Если там нет QIODevice::Text, то хз в чём дело. Попробуй добавить QIODevice::Unbuffered, мало ли...
...
Рейтинг: 0 / 0
18.04.2016, 14:25
    #39218168
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QT QFile отображает не верный размер файла
Начиная с какой-то версии Windows , Far, Explorer перестали показывать актуальный размер
файла который открыт на запись в добавление.

Для того чтобы оценить насколько глубока кроличья нора, я на свой страх и риск
нажимал F3 в Far-е или делал dir и длины открытых файлов актуализировались
на некоторое время.
...
Рейтинг: 0 / 0
18.04.2016, 15:00
    #39218218
Картежник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QT QFile отображает не верный размер файла
также я заливаю таким образом картинки и другие файлы. с ними я с проблемами не столкнулся. только торрент файлы. хотя возможно там тоже что то не так, ведь проверка на формат только на торрент файлы есть.
...
Рейтинг: 0 / 0
18.04.2016, 16:20
    #39218354
NekZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QT QFile отображает не верный размер файла
Картежник,

Попробуй проверь через обычный stdio API
...
Рейтинг: 0 / 0
18.04.2016, 16:40
    #39218383
Картежник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QT QFile отображает не верный размер файла
maytonНачиная с какой-то версии Windows , Far, Explorer перестали показывать актуальный размер
файла который открыт на запись в добавление.

надо проверить
Код: plaintext
1.
2.
3.
4.
5.
 QString torfname=QString(TORRENT_PATH)+shortname+".torrent";
    ofstream out(torfname.toStdString(), std::ios_base::binary);
    qDebug()<<"bencode";
    bencode(std::ostream_iterator<char>(out), t.generate());
    out.close(); // ЭТОГО НЕ БЫЛО БРАЛ С ПРИМЕРА
...
Рейтинг: 0 / 0
18.04.2016, 16:43
    #39218387
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QT QFile отображает не верный размер файла
Там надо не просто открыть с сделать SEEK_END
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / QT QFile отображает не верный размер файла / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]