0

QtまたはCarbonを使用してMacのアプリケーションフォルダからアプリケーションのリストを読みたい。これを行う方法がわかりません。ですから、どんなポインタも高く評価されます。

ありがとうRahul

4

2 に答える 2

0

ディレクトリは、opendir(3)関数とreaddir(3)関数、またはCore ServicesFileManagerのFSOpenIterator関数とFSGetCatalogInfoBulk関数のいずれかを使用して一覧表示できます。

于 2010-03-09T07:04:17.140 に答える
0

最も簡単な解決策は、アプリケーションディレクトリを取得し、Qtヘルパーを使用してそれを反復処理することです。つまりQDirであり、名前が「.app」で終わるディレクトリとしてバンドルを検索します。フォルダ参照型からQDirを取得するためのコードを次に示します。デスクトップ/ゴミ箱/ライブラリフォルダを取得するための同様の定数が多数あります。「ドメイン」の値は重要です。多くのフォルダ(ライブラリなど)には、ユーザーごとのバージョンと、グローバルバージョンおよびネットワークバージョンがあります。FileVaultは事態をさらに複雑にする可能性があります。

FSFindFolderのドキュメントは、物事をより明確にするはずであり、Web全体に例があります。

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();
}
于 2010-03-09T13:32:38.280 に答える