Russian Qt Forum

Qt => Работа с сетью => Тема начата: Maz от Январь 14, 2007, 14:31



Название: QFtp и двойные пробелы в имени директории
Отправлено: Maz от Январь 14, 2007, 14:31
Проблема такая. С помощью QFtp просматривается список папок на сервере. У некоторых папок есть двойные пробелы в именах. Список просматривается с помощью ftp->list(). Папки с двойным пробелами выводятся с одним пробелом.
Как с этим можно бороться?


Название: QFtp и двойные пробелы в имени директории
Отправлено: Dendy от Январь 14, 2007, 14:36
Интересно. А папки с одним пробелом? А с тремя, четьІрьмя? А как с файлами?


Название: QFtp и двойные пробелы в имени директории
Отправлено: Maz от Январь 14, 2007, 16:30
С одним пробелом все нормально. С остальными ситуациями не встречался. Нужно будет запустить у себя ftp сервер и посмотреть.

добавлено спустя 1 час 44 минуты:

 Нашел в чем проблема. В qftp.cpp есть метод
bool QFtpDTP::parseDir(const QString &buffer, const QString &userName, QUrlInfo *info)
В этом методе разбираеться строка, кот. вернул ftp сераер.
Так вот она разбираеться вот таким образом:
QStringList lst = buffer.simplified().split(QLatin1String(" "));
А имя папки получают вот таким способом
        QString n;
        for (int i = 8; i < lst.count(); ++i)
            n += lst + QLatin1Char(' ');
        n = n.trimmed();
        info->setName(n);

Естественно после этого не будут правильно определяться имена папок с несколькими пробелами внутри названия и пробелами вначале и конце названия.
Вопрос - как это можно подправить? В классе нет виртуальных функций чтобы это можно было исправить.


Название: QFtp и двойные пробелы в имени директории
Отправлено: Dendy от Январь 14, 2007, 18:30
Протокола FTP не знаю. Мои вариантьІ.

1. Протокол не позволяет делать больше одного пробела. Следовательно FTP сервер работает неверно.

2. С протоколом все в порядке. Значит ето баг в Qt. Следовательно нужно сделать баг-репорт Тролям. А пока попьІтаться найти альтернативное решение, например подправить Qt-код.

Кстати, какая версия Qt? Может ужо все давно исправлено.


Название: QFtp и двойные пробелы в имени директории
Отправлено: Maz от Январь 15, 2007, 14:17
У себя уже подправил. Версия 4.2.0.
Жалко что приходиться подправлять саму библиотеку. Проблемы с переходом на новую версию могут быть проблемы.


Название: QFtp и двойные пробелы в имени директории
Отправлено: Dendy от Январь 15, 2007, 15:06
Отправьте баг-репорт Троллям, в чём проблема? Они всё фиксят 100%


Название: QFtp и двойные пробелы в имени директории
Отправлено: Maz от Январь 15, 2007, 15:20
Никогда этого не делал рашьше. Куда отпралять? Е еще я не очень дружу с английским.


Название: QFtp и двойные пробелы в имени директории
Отправлено: Dendy от Январь 15, 2007, 16:08
Почта: qt-bugs@trolltech.com

Указуешь:
1. Платформа
2. Компилятор
3. Версию Qt

Коротко в чём проблема, если знаешь как и где исправить - пиши. Пример исходного кода, демонстрирующего трабл приветствуются. Укажи ФТП сервер и папку в нём на которой протестить.

Обратно прийдут два письма:
1. От бота, чтоб удостовериться, что баг дошёл по назначению
2. От программиста, что проверил баг


Название: QFtp и двойные пробелы в имени директории
Отправлено: Maz от Январь 16, 2007, 12:03
А писать на буржуйском?


Название: QFtp и двойные пробелы в имени директории
Отправлено: Dendy от Январь 16, 2007, 15:32
На английском конечно.