Apakah ada cara untuk mengambil jalur file ikon aplikasi menggunakan AppleScript?

0

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.

Ketouem
sumber
Apa yang bisa Anda capai sejauh ini? Apa yang sudah kamu coba?
bjbk

Jawaban:

1

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 nilai CFBundleIconFile 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 .:

defaults read /Applications/Calculator.app/Contents/Info.plist CFBundleIconFile

Di AppleScript Anda bisa mengatur hasil ke variabel dan pergi dari sana, mis .:

set appIcon to do shell script "defaults read /Applications/Calculator.app/Contents/Info.plist CFBundleIconFile"

Ia mengembalikan: Calculator.icns

Dimana sebagai,

defaults read /Applications/Utilities/Terminal.app/Contents/Info.plist CFBundleIconFile

Pengembalian: Terminal

Namun FQP adalah /Applications/Utilities/Terminal.app/Contents/Resources/Terminal.icns

user3439894
sumber
-1

Mencoba:

do shell script "find " & quoted form of POSIX path of (path to application "Terminal") & " -iname \"*.icns\";"
adayzdone
sumber