Russian Qt Forum

Qt => Общие вопросы => Тема начата: Akon от Февраль 19, 2014, 18:40



Название: win32-msvc2010 QFile не открывает файл, заданный относительным путем
Отправлено: Akon от Февраль 19, 2014, 18:40
QFile file("..\patterns\1.wav");
file.open()  // error: "Системе не удается найти указанный путь".

Полный путь открывается (т.е. проблема не в кодировках). Тот же код с MinGW работает корректно.

Кто сталкивался?


Название: Re: win32-msvc2010 QFile не открывает файл, заданный относительным путем
Отправлено: Alex Custov от Февраль 19, 2014, 18:44
может всё-таки "..\\patterns\\1.wav" ?


Название: Re: win32-msvc2010 QFile не открывает файл, заданный относительным путем
Отправлено: Akon от Февраль 19, 2014, 18:47
Извиняюсь, опустил, как оказывается, важнейшую деталь - запуск проги был из под среды MSVC, и текущая директория не та.


Название: Re: win32-msvc2010 QFile не открывает файл, заданный относительным путем
Отправлено: Bepec от Февраль 19, 2014, 20:12
MSVC
- из под дебага текущая директория папка с файлом vscpoj
- из под релиза текущая директория - там где находится исполняемый файл программы.


Название: Re: win32-msvc2010 QFile не открывает файл, заданный относительным путем
Отправлено: kambala от Февраль 19, 2014, 20:36
у меня в 2012 в обоих случаях рабочей является папка с экзешником по умолчанию


Название: Re: win32-msvc2010 QFile не открывает файл, заданный относительным путем
Отправлено: lesav от Февраль 19, 2014, 20:39
НЛО ПРИЛЕТЕЛО И ОСТАВИЛО ЭТО СООБЩЕНИЕ

Код:
QString getAbsPath(QString path)
{
    QFileInfo f_info;
    if(path.left(1)=="/" || path.mid(1, 1)==":")
        f_info.setFile(path); // от корня
    else
        f_info.setFile(qApp->applicationDirPath() + "/" + path);// относительно бинарника

    return f_info.canonicalFilePath();
}


Название: Re: win32-msvc2010 QFile не открывает файл, заданный относительным путем
Отправлено: lesav от Февраль 19, 2014, 20:42
QDir::setCurrent(qApp->applicationDirPath()); (http://qt-project.org/doc/qt-4.8/qdir.html#setCurrent)