Russian Qt Forum
Ноябрь 22, 2024, 20:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QFtp и двойные пробелы в имени директории  (Прочитано 7554 раз)
Maz
Гость
« : Январь 14, 2007, 14:31 »

Проблема такая. С помощью QFtp просматривается список папок на сервере. У некоторых папок есть двойные пробелы в именах. Список просматривается с помощью ftp->list(). Папки с двойным пробелами выводятся с одним пробелом.
Как с этим можно бороться?
Записан
Dendy
Гость
« Ответ #1 : Январь 14, 2007, 14:36 »

Интересно. А папки с одним пробелом? А с тремя, четьІрьмя? А как с файлами?
Записан
Maz
Гость
« Ответ #2 : Январь 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);

Естественно после этого не будут правильно определяться имена папок с несколькими пробелами внутри названия и пробелами вначале и конце названия.
Вопрос - как это можно подправить? В классе нет виртуальных функций чтобы это можно было исправить.
Записан
Dendy
Гость
« Ответ #3 : Январь 14, 2007, 18:30 »

Протокола FTP не знаю. Мои вариантьІ.

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

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

Кстати, какая версия Qt? Может ужо все давно исправлено.
Записан
Maz
Гость
« Ответ #4 : Январь 15, 2007, 14:17 »

У себя уже подправил. Версия 4.2.0.
Жалко что приходиться подправлять саму библиотеку. Проблемы с переходом на новую версию могут быть проблемы.
Записан
Dendy
Гость
« Ответ #5 : Январь 15, 2007, 15:06 »

Отправьте баг-репорт Троллям, в чём проблема? Они всё фиксят 100%
Записан
Maz
Гость
« Ответ #6 : Январь 15, 2007, 15:20 »

Никогда этого не делал рашьше. Куда отпралять? Е еще я не очень дружу с английским.
Записан
Dendy
Гость
« Ответ #7 : Январь 15, 2007, 16:08 »

Почта: qt-bugs@trolltech.com

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

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

Обратно прийдут два письма:
1. От бота, чтоб удостовериться, что баг дошёл по назначению
2. От программиста, что проверил баг
Записан
Maz
Гость
« Ответ #8 : Январь 16, 2007, 12:03 »

А писать на буржуйском?
Записан
Dendy
Гость
« Ответ #9 : Январь 16, 2007, 15:32 »

На английском конечно.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 21.