Russian Qt Forum

Qt => Работа с сетью => Тема начата: Авварон от Июня 15, 2009, 20:08



Название: QUrl баг?
Отправлено: Авварон от Июня 15, 2009, 20:08
Код:
#include <QtCore/QCoreApplication>
#include <QUrl>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QUrl url("file:///C:/WINDOWS/explorer.exe");
    qDebug() << url.path();

    return a.exec();
}
печатает "/C:/WINDOWS/explorer.exe"
а по моему разумению должно было бы "C:/WINDOWS/explorer.exe"? нужно писать письмо троллям?


Название: Re: QUrl баг?
Отправлено: BRE от Июня 15, 2009, 20:12
Код:
#include <QtCore/QCoreApplication>
#include <QUrl>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QUrl url("file:///C:/WINDOWS/explorer.exe");
    qDebug() << url.path();

    return a.exec();
}
печатает "/C:/WINDOWS/explorer.exe"
а по моему разумению должно было бы "C:/WINDOWS/explorer.exe"? нужно писать письмо троллям?
А зачем три ///?


Название: Re: QUrl баг?
Отправлено: Rcus от Июня 15, 2009, 20:13
эээ, а собственно почему это? В Unix-образных это вполне корректный абсолютный путь :)


Название: Re: QUrl баг?
Отправлено: Авварон от Июня 15, 2009, 20:17
C:/WINDOWS/explorer.exe в никсах?) ну-ну) как раз в том-то и баг, что под кубунтой\макосью все ок было, а под винду (тест) вот такой баг. Я конечно понимаю, что схема это строка вида xxxx:// но в винде если в проводнике ввести file то там будет как раз с 3мя слешами. И самое главное - drop из проводника также возвращает QUrlList с 3мя (!) слешами


Название: Re: QUrl баг?
Отправлено: Rcus от Июня 15, 2009, 20:20
Ну ясно почему три слеша: RFC1738(http://www.faqs.org/rfcs/rfc1738.html) определяет схему file как
fileurl        = "file://" [ host | "localhost" ] "/" fpath
host может быть пустым, потому и три слеша.


Название: Re: QUrl баг?
Отправлено: BRE от Июня 15, 2009, 20:25
А что в венде вернет следующая конструкция?  ;)
Код
C++ (Qt)
QUrl url(...);
QString path = url.toLocalFile();
 


Название: Re: QUrl баг?
Отправлено: Rcus от Июня 15, 2009, 20:31
oh /*забивает гвоздь в голову чтобы не забыть протестировать поведение в венде, как найдет ее, чувствует что сломал кое-что :)*/


Название: Re: QUrl баг?
Отправлено: Авварон от Июня 15, 2009, 20:53
да, toLocalFile работает... но разве path это все-таки не часть после //имя юзверя и прочая лабуда/ ?


Название: Re: QUrl баг?
Отправлено: mugabe от Июня 16, 2009, 10:57
да, toLocalFile работает... но разве path это все-таки не часть после //имя юзверя и прочая лабуда/ ?

Код
C++ (Qt)
   QUrl url("http://www.ru/test");
   qDebug() << url.path();
 
 
output: "/test"
 

тоже баг? :)

QUrl::setPath()
(http://doc.trolltech.com/4.5/images/qurl-ftppath.png) (http://doc.trolltech.com/4.5/qurl.html#setPath)

ну и как выше заметил RCus, по RFC путь у file:/// начинается с 3-го слеша


Название: Re: QUrl баг?
Отправлено: Авварон от Июня 16, 2009, 15:31
оппа) а мне казалось что path это www.ru( я тупой