Onde o Mac OS X armazena informações de associação de arquivos?

19

Eu sei que há um painel de preferências do sistema para modificar manualmente as associações de arquivos no Mac OS X Leopard. No entanto, estou curioso para saber onde o Leopard realmente armazena essas informações?

Não estou interessado em métodos para alterá-los. Eu quero saber o arquivo de configuração ou banco de dados (como registro no Windows) onde esses mapeamentos são armazenados.

    
por Mehrdad Afshari 10.08.2009 / 22:52

5 respostas

9

Desculpe, esta pergunta é antiga, mas a resposta está realmente errada.

Como o toolbear mencionou, a resposta de Doug Harris é apenas parcialmente correta.

O arquivo Launch Services Database , que é onde todas as informações de todos aplicativos conhecidos e os tipos de documentos que eles podem manipular é armazenado, está localizado no seguinte local:

Leão:

/private/var/folders/**/**/-Caches-/com.apple.LaunchServices-034501.csstore

Snow Leopard:

/private/var/folders/**/**/-Caches-/com.apple.LaunchServices-025501.csstore

Leopard:

/Library/Caches/com.apple.LaunchServices-023501.csstore

A pasta /private/var/folders/ é onde as pastas "seguras" Caches e Temporary para cada usuário são armazenadas. Os ** no caminho mostrado acima serão algo como /dl/dlXWtS5WH9SNboPxxrDIyE+++TI/ ou outra sequência de caracteres obscuros para evitar adivinhações.

Observe que o nome com.apple.LaunchServices-025501.csstore é composto do ID do usuário (o meu é 501 ) anexado ao sufixo -025 , que é exclusivo do Snow Leopard. (Em cada versão do OS X, a Apple tende a alterar o sufixo distintivo usado para evitar problemas de compatibilidade entre diferentes versões do OS X. Você notará que o Leopard usou -023 ). O Lion está usando o sufixo -034 .

    
por 29.03.2011 / 07:44
16

O OS X usa um sistema "padrão" - aqui está um artigo interessante com muitos exemplos. Os arquivos são armazenados em ~ / Library / Preferences, mas é melhor manipular com o comando "defaults" ao invés de editar as plists diretamente.

As associações de arquivos são armazenadas no domínio com.apple.LaunchServices. No link acima, você pode ver a lista com este comando:

defaults read com.apple.LaunchServices | grep -v LSBundleLocator

Mais informações sobre o Launch Services especificamente, podem ser encontradas no Guia de programação dos serviços de inicialização da Apple.

    
por 10.08.2009 / 23:56
12

A resposta de @Doug Harris está apenas parcialmente correta. O sistema de padrões armazena suas adições ou substituições locais nas associações de arquivos. No entanto, o OS X vem com algumas associações padrão do sistema.

Se você executar lsregister -dump , verá o que o Launch Services chama CoreTypes e as associações fornecidas pelos aplicativos que encontrar.

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Versions/Current/Support/lsregister -dump

Eu não examinei exaustivamente a saída. Pode haver outras fontes indicadas nesse dump, mas um grande número desses tipos vem de /System/Library/CoreServices/CoreTypes.bundle . Pode haver um texto simples ou arquivo plist lá onde os tipos são enumerados. As associações que acredito vêm da verificação do conteúdo de * .app em locais de aplicativos conhecidos. Aqui é onde o Launch Services entende que o TextWrangler é um editor para vários tipos de arquivos:

--------------------------------------------------------------------------------
bundle  id:            10928
    path:          /Applications/TextWrangler.app
    name:          TextWrangler
    identifier:    com.barebones.textwrangler (0x8000008d)
    ...
    library items:
    --------------------------------------------------------
    claim   id:            20216
        name:          TextWrangler text document
        rank:          Default
        roles:         Editor  
        flags:         relative-icon-path  
        icon:          Contents/Resources/TextWranglerTextDoc.icns
        bindings:      .a, .asm, .asp, .bashrc, .c, .c++, .cc, .cfm, .conf, .cp, .cpp, .cshrc, .css, .cxx, .equ, .f, .f77, .for, .ftn, .h, .h++, .hpp, .htm, .html, .inc, .j, .java, .js, .jsp, .log, .m, .mm, .p, .pas, .pch, .pch++, .php, .php3, .pl, .plist, .plx, .pm, .ppu, .r, .rb, .rez, .rhtml, .rss, .s, .sql, .shtm, .shtml, .tcl, .tcshrc, .text, .txt, .wml, .xhtml, .xml, .xsl, .xslt, .yaml, 'TEXT'
    ...
    
por 26.05.2010 / 00:24
3

Fácil peasy! É só que não está no lugar mais óbvio:

  • Clique com o botão direito do mouse no arquivo para o qual deseja alterar a associação e selecione " Obter Informações " (ou simplesmente selecione e tecle Comando + I .
  • Desça até " Abre com " (talvez seja necessário clicar na seta ao lado para expandi-la) e selecionar outro programa na caixa suspensa.
  • Clique no botão " Alterar tudo ... " para alterar essa associação de arquivos para todos os arquivos da mesma extensão em seu sistema.

Vocêtambémpodesaireinstalaro RCDefaultApp para pré-editar todas as associações de arquivos em um só lugar.

    
por 10.08.2009 / 22:58
-1

~/Library/Preferences/com.apple.LaunchServices.plist

    
por 10.08.2009 / 23:59