Как запустить соответствующее приложение для файла / каталога / URL?
Linux вроде бы просто.xdg-open
По-видимому,макинтош похож:open
следует использовать вместоxdg-open
, Я неу меня нет доступа к Mac, поэтому я не могупроверить это.
ЗаWindowsЯ нашел 4 различных предложения, и те, которые я попробовал, потерпели неудачу.
Существует ли не Java-кроссплатформенный способ запуска связанного приложения для файлов определенного типа? предполагаетstart
Как сфокусироваться на программе по умолчанию для открытого файла оболочки из Java? предполагаетcmd /c start ...
Как открыть пользовательский системный редактор для данного файла?
Как узнать по умолчанию открывалка файлов с Java? предложитьRUNDLL32.exe
Как правильно использовать ShellExecute () в C, чтобы открыть .txt
Открыть файл в Windows нативная программа в коде C ++
Как использовать ShellExecute для открытия HTML-файлов в Windows, используя C ++? предложитьShellExecute
Я пробовал первые 3 сsystem()
а такжеQProcess::startDetached()
а также"http://www.stackoverflow.com"
как аргумент, но все они потерпели неудачу;start
работает отлично из командной строки, хотя. У меня нетя пыталсяShellExecute
еще.
Что является эквивалентом Windows?xdg-open
Мне кажется, этоstart
но почему мои попыткиstart
потерпеть поражение?
ЯвляетсяShellExecute
мой единственный вариант?
РЕДАКТИРОВАТЬ я думалQDesktopServices::openUrl()
был только для веб-страниц, потому что он не работал для файлов или каталогов.
После некоторой отладки я понял, что если я заменю\\
с/
в пути в Windows это работает для файлов, но каталоги все еще не открыты. Есть идеи, что я делаю не так?
QDir dir("C:/Documents and Settings/ali");
qDebug() < "Exists? " < dir.exists();
qDebug() < dir.absolutePath();
QDesktopServices::openUrl(QUrl(dir.absolutePath()));
qDebug() < "External app called";