Pergunta

Eu quero lista de aplicativos da pasta Aplicativos do Mac usando Qt ou carbono ler. Não sei ao certo como fazer isso. Então, os ponteiros serão apreciados.

Graças Rahul

Foi útil?

Solução

A solução mais fácil é fazer com que as aplicações dir e, em seguida, usar os ajudantes do Qt para iterar sobre ele - ou seja QDir, e encontrar pacotes como diretórios cujos nomes terminam em '.app'. Aqui está algum código para obter um QDir a partir de um tipo de referência pasta - há muitos constantes semelhantes, para obter os / lixo / pastas da biblioteca de desktop. O valor 'domínio' é importante - para muitas pastas (por exemplo, Library) há uma versão por usuário, bem como versões globais e de rede. FileVault pode complicar ainda mais as coisas.

A documentação sobre FSFindFolder deve tornar as coisas mais claras, e há exemplos em toda a 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();
}

Outras dicas

Você pode listar um diretório usando o opendir (3) e readdir (3) funções ou as funções FSOpenIterator e FSGetCatalogInfoBulk de Gerenciador de Arquivos core Services.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top