it-swarm.asia

Di mana Mac OS X menyimpan informasi asosiasi file?

Saya tahu ada panel preferensi sistem untuk secara manual memodifikasi asosiasi file di Mac OS X Leopard. Namun, saya ingin tahu di mana Leopard sebenarnya menyimpan informasi ini?

Saya tidak tertarik dengan metode untuk mengubahnya. Saya ingin tahu file konfigurasi atau database (seperti registry di Windows) di mana pemetaan tersebut disimpan.

24
Mehrdad Afshari

Maaf, pertanyaan ini sudah lama, tetapi jawabannya benar-benar salah.

Seperti yang disebutkan oleh toolbear, jawaban Doug Harris hanya sebagian yang benar.

File Launch Services Database, yang merupakan tempat semua informasi untuk semua aplikasi yang diketahui dan jenis dokumen yang dapat mereka tangani disimpan, adalah terletak di lokasi berikut:

Singa:

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

Macan Tutul Salju:

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

Macan tutul:

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

Folder /private/var/folders/ adalah tempat penyimpanan "Cache" dan folder Sementara untuk setiap pengguna disimpan. ** pada jalur yang ditunjukkan di atas akan menjadi sesuatu seperti /dl/dlXWtS5WH9SNboPxxrDIyE+++TI/, atau urutan karakter lain yang tidak jelas untuk mencegah tebakan.

Perhatikan bahwa nama com.Apple.LaunchServices-025501.csstore terdiri dari ID pengguna (milik saya 501) ditambahkan ke akhiran -025, yang unik untuk Snow Leopard. (Di setiap versi OS X, Apple cenderung mengubah sufiks pembeda yang digunakan untuk mencegah masalah kompatibilitas antara versi OS X yang berbeda. Anda akan melihat bahwa Leopard menggunakan -023). Lion menggunakan akhiran -034.

12
NSGod

OS X menggunakan sistem "default" - inilah artikel bagus dengan banyak contoh. File-file disimpan di bawah ~/Library/Preferences, tetapi yang terbaik adalah memanipulasi dengan perintah "default" daripada mengedit daftar secara langsung.

Asosiasi file disimpan di bawah domain com.Apple.LaunchServices. Dari tautan di atas, Anda dapat melihat daftar dengan perintah ini:

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

Jauh lebih banyak informasi tentang Layanan Peluncuran khusus, dapat ditemukan di Apple Panduan Pemrograman Layanan Peluncuran

17
Doug Harris

@Doug Harris jawaban hanya sebagian benar. Sistem default menyimpan penambahan atau penggantian lokal Anda ke asosiasi file. Namun, OS X hadir dengan beberapa asosiasi standar sistem.

Jika Anda menjalankan lsregister -dump Anda akan melihat apa yang dinamakan Launch Services CoreTypes dan asosiasi yang disediakan oleh aplikasi yang ditemukannya.

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

Saya belum secara mendalam memindai output. Mungkin ada sumber lain yang ditunjukkan dalam dump itu, tetapi sejumlah besar jenis ini berasal dari /System/Library/CoreServices/CoreTypes.bundle. Mungkin ada file plaintext atau plist di sana di mana jenisnya disebutkan. Asosiasi saya percaya berasal dari pemindaian konten * .app di lokasi aplikasi yang dikenal. Di sinilah Layanan Peluncuran memahami TextWrangler adalah editor untuk berbagai jenis file:

--------------------------------------------------------------------------------
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'
    ...
15
toolbear74

Peasy mudah! Hanya saja itu bukan di tempat yang paling jelas:

  • Klik kanan pada file yang ingin Anda ubah asosiasi dan pilih " Dapatkan Info " (atau cukup pilih dan tekan Command+I.
  • Pergi ke " Buka Dengan " (Anda mungkin perlu mengklik panah di sebelahnya untuk meluaskannya) dan pilih program lain dari kotak drop down.
  • Klik tombol " Ubah Semua ... " untuk mengubah asosiasi file ini untuk semua file dengan ekstensi yang sama pada sistem Anda.

enter image description here

Anda juga bisa keluar dan menginstal RCDefaultApp prefpane untuk memodifikasi semua asosiasi file di satu tempat.

2
Josh Hunt