Как запустить соответствующее приложение для файла / каталога / 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";

Ответы на вопрос(1)

Ваш ответ на вопрос