Qt: Указание программе читать другие файлы из того же каталога, в котором она находится

У меня есть программа, которая будет принимать несколько разных файлов в качестве входных данных.
Все, что я собираюсь знать, это то, что файлы будут находиться в той же папке, что и моя программа (и я знаю их имена).

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

3

Решение

Вы ищете их в QCoreApplication.

QString QCoreApplication :: applicationDirPath () [статические]

Возвращает каталог, содержащий исполняемый файл приложения.

Например, если вы установили Qt в каталог C: \ Qt и запустили пример регулярного выражения, эта функция вернет «C: / Qt / examples / tools / regexp».

В Mac OS X это будет указывать на каталог, фактически содержащий исполняемый файл, который может находиться внутри пакета приложения (если приложение связано)
Предупреждение: в Linux эта функция попытается получить путь из файловой системы / proc. Если это не удается, предполагается, что argv [0] содержит абсолютное имя файла исполняемого файла. Функция также предполагает, что текущий каталог не был изменен приложением.

а также

QString QCoreApplication :: applicationFilePath () [статические]

Возвращает путь к файлу исполняемого файла приложения.

Например, если вы установили Qt в каталог / usr / local / qt и запустили пример regexp, эта функция вернет «/ usr / local / qt / examples / tools / regexp / regexp».

Предупреждение: в Linux эта функция попытается получить путь из файловой системы / proc. Если это не удается, предполагается, что argv [0] содержит абсолютное имя файла исполняемого файла. Функция также предполагает, что текущий каталог не был изменен приложением.

В зависимости от вашего конкретного случая использования, вы используете один из них, возможно, первый, если вы хотите получить путь к исполняемому файлу + другие ваши файлы.

3

Другие решения

Если вы уверены, что файлы находятся в той же папке вашей программы, вы можете использовать:

QCoreApplication::applicationFilePath()
4

По вопросам рекламы [email protected]