powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / QT QFile отображает не верный размер файла
17 сообщений из 17, страница 1 из 1
QT QFile отображает не верный размер файла
    #39217709
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
помогите, дедлайн на носу. остановился на не понятной проблеме. в QFile указываю путь до торрент файла размер которого 18882байт это показывает винда и трекер на который загружается сам торрент файл. но когда загружаю через QT то происходит ошибка,трекер не принимает его. видимо из за того что размер файла не правильный (16384байт), и возможно QByteArray что то искажает может не в той кодировке. в QT проверяю размер файла через file->size(), а также размер QByteArray массива и там показывает 16384байта. при создании торрент файла использовалась функция bencode может она там что то химичит, кто знает?
...
Рейтинг: 0 / 0
QT QFile отображает не верный размер файла
    #39217711
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
даже проверял через
Код: 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
QT QFile отображает не верный размер файла
    #39217841
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Считывание символов из текстового файла может быть не равно подчету
байтов. Например BOM может быть проигнорирован.
...
Рейтинг: 0 / 0
QT QFile отображает не верный размер файла
    #39217874
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И цифра 16384 она уж сильно круглая получилась. Строго кратная 1024 или 2048. Возможно
у тебя цикл организован неправильно и ты где-то "проглотил" последнюю итерацию.
...
Рейтинг: 0 / 0
QT QFile отображает не верный размер файла
    #39217908
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Картежник,

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

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

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

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

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

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

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

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

Попробуй проверь через обычный stdio API
...
Рейтинг: 0 / 0
QT QFile отображает не верный размер файла
    #39218383
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
QT QFile отображает не верный размер файла
    #39218387
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там надо не просто открыть с сделать SEEK_END
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / QT QFile отображает не верный размер файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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