Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Qt4] абсолютный путь к файлу, Qt абсолютный путь к файлу 
:(
    Опции темы
ISerg1986
Дата 7.2.2014, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 12.1.2014

Репутация: нет
Всего: нет



Здравствуйте!
Написал программу, которая читает из файла.
Файл с данными myfile.txt находится в папке программы. Как сделать так, чтобы путь к файлу был относительным?
В идеале, нужно кроссплатформенное решение для "пути". Код должен работать  в windows и  Линукс.


Часть кода
Код

    //Чтение данных из файла
    QStringList strArray;
 QFile file("F:\\QT\\MyQtProjects\\read_from_file\\myfile.txt"); //Относительный путь
   //   QFile file("./myfile.txt"); //а как указать абсолютный путь для виндовс?
    if (!file.open(QIODevice::ReadOnly)) return;
    QTextStream stream(&file);
    while(!stream.atEnd())
    {
        strArray.append(stream.readLine());
    }


Это сообщение отредактировал(а) ISerg1986 - 7.2.2014, 15:56
PM MAIL   Вверх
vinter
Дата 7.2.2014, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 3
Всего: 56



моя твоя не понимать, у тебя в коде полный путь. Изъясняйся яснее.


--------------------
Мой блог
PM MAIL WWW   Вверх
ISerg1986
Дата 7.2.2014, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 12.1.2014

Репутация: нет
Всего: нет



Цитата(vinter @  7.2.2014,  14:21 Найти цитируемый пост)
моя твоя не понимать, у тебя в коде полный путь. Изъясняйся яснее. 

Исправил первое сообщение.
Для Линукс 
QFile file("./myfile.txt"); - относительный путь
а как сделать относительный путь для windows? Есть кроссплатформенное решение?
PM MAIL   Вверх
vinter
Дата 7.2.2014, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 3
Всего: 56



Я всё равно не понимаю, чего ты хочешь, но посмотри QFileInfo - этот класс умеет многое. Вообще говоря сокращения типа . и .. они универсальны и кросс-платформенны, по крайней мере для базовых ОС,


--------------------
Мой блог
PM MAIL WWW   Вверх
borisbn
Дата 8.2.2014, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



ISerg1986, в студии по-умолчанию при запуске в Debug текущим каталогом является не какталог, в котором находится exe-шник, а каталог, в котором лежит .vsproj.
Чтобы сделать текущим каталог exe-шника нужно указать в настройках проекта в разделе "Debugging/Working directory" == "$TargetPath"
Студия дома не установлена, по-этому могу ошибаться в названиях, но, думаю, ты понял


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
ALEXRAGE
Дата 9.2.2014, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 17.1.2014
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Цитата(ISerg1986 @  7.2.2014,  15:58 Найти цитируемый пост)
QFile file("./myfile.txt"); - относительный путь
а как сделать относительный путь для windows


Не знаю как в студии, а в qtcreator такая запись пути работает и в Linux и в Windows.

А вот: "F:\\QT\\MyQtProjects\\read_from_file\\myfile.txt" - будет работать только в Windows. Linux не поймет.

Получить aplication dir можно так:
Код

qApp->applicationDirPath()

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.1076 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.