Frage

Ich möchte Liste der Anwendungen aus dem Ordner Programme auf Mac mit Qt oder Kohlenstoff lesen. Ich bin nicht sicher, wie dies zu tun. So werden alle Zeiger geschätzt werden.

Danke Rahul

War es hilfreich?

Lösung

Die einfachste Lösung ist es, die Anwendungen dir bekommen und dann die Qt Helfer verwenden, um über sie zu durchlaufen - das heißt QDir und Bundles als Verzeichnisse, deren Namen in ‚.app‘ zu finden. Hier einige Code ein QDir aus einem Ordner Referenztyp zu bekommen - es gibt viele ähnliche Konstanten, die Desktop / trash / Bibliotheksordner zu erhalten. Der ‚Domain‘ Wert ist wichtig - für viele Ordner (zB Library) gibt es eine pro-User-Version sowie globale und Netzwerkversionen. Filevault kann die Dinge weiter komplizieren.

Die Dokumentation auf FSFindFolder sollte die Dinge klarer machen, und es gibt Beispiele alle über das Internet.

static QDir applicationsDir()
{
    short domain = kOnAppropriateDisk;
    FSRef ref;
    OSErr err = FSFindFolder(domain, kApplicationsFolderType, false, &ref);
    if (err) {
        return QDir();
    }

    return QDir(getFullPath(ref));
}

/*
    Constructs a full unicode path from a FSRef.
*/
static QString getFullPath(const FSRef &ref)
{
    QByteArray ba(2048, 0);
    if (FSRefMakePath(&ref, reinterpret_cast<UInt8 *>(ba.data()), ba.size()) == noErr)
        return QString::fromUtf8(ba).normalized(QString::NormalizationForm_C);
    return QString();
}

Andere Tipps

Sie können ein Verzeichnis Liste entweder mit die opendir (3) und readdir (3) Funktionen oder die FSOpenIterator und FSGetCatalogInfoBulk Funktionen von die Core Services File Manager.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top