Saat ini saya sedang menulis alur kerja Alfred di mana saya ingin mengambil jalur file ikon yang ditautkan ke aplikasi. Apakah ada cara untuk melakukannya secara asli menggunakan Apple Script?
tell application "Finder"
set appPath to POSIX path of (path to application "Terminal")
set resourcesPath to appPath & "Contents/Resources"
set contentFiles to (list folder resourcesPath)
end tell
Melakukan itu saya berhasil mendapatkan daftar nama file tetapi sekarang saya tidak benar - benar tahu cara memfilter .icns
mengajukan.
applescript
alfred
Ketouem
sumber
sumber
Jawaban:
Saya tidak terbiasa dengan Alfred namun sejauh AppleScript dan mendapatkan pathname Ikon Aplikasi Bundle biasanya tidak hardcoded, sehingga tidak seperti Anda bisa mendapatkan jalurnya dengan satu perintah. Selain itu nilai
CFBundleIconFile
dapat dengan dan tanpa.icns
ekstensi, jadi ketika membangun pathname yang memenuhi syarat dari Ikon Bundel Aplikasi Anda harus mempertimbangkannya saat Anda menulis kode.Sebagai contoh, menggunakan built-in
/Applications/Calculator.app
itu/Applications/Calculator.app/Contents/Info.plist
menunjukkan bahwa File ikon adalah "Calculator.icns" tetapi tidak memberikan path, meskipun biasanya berada dalam folder Resources di dalam Bundel Aplikasi dan dalam hal ini,/Applications/Calculator.app/Contents/Resources/Calculator.icns
. Jadi, Anda harus mendapatkan nilaiCFBundleIconFile
dari App.plist
file dan periksa apakah memiliki.icns
ekstensi dan uji untuk melihat apakah itu di lokasi default, yang biasanya tetapi tidak selalu.Jadi, di Terminal Anda akan meminta menggunakan
defaults
, mis .:Di AppleScript Anda bisa mengatur hasil ke variabel dan pergi dari sana, mis .:
Ia mengembalikan:
Calculator.icns
Dimana sebagai,
Pengembalian:
Terminal
Namun FQP adalah
/Applications/Utilities/Terminal.app/Contents/Resources/Terminal.icns
sumber
Mencoba:
sumber