在 OSX 10.6 中,我使用以下代码对 Finder 中当前选择的每个文件执行一些操作:
app('Finder').selection.get.each do |item|
url =CGI::unescape(item.URL.get)
puts url
do_pdf(url[16..-1])
end
(这是由键盘大师推出的)。这工作得很好,但是在 OSX Lion 中,行为似乎已经改变。
selection.get 仍然返回正确的参考 app('Finder').selection.get[0] => app"/System/Library/CoreServices/Finder.app"disks["Home"]folders["stian"]folders[ "下载"]document_files["综合考试(1).doc"]
但是,当我尝试使用 URL.get 提取它时,我得到一个奇怪的数字:
app('Finder').selection.get[0].URL.get
=> "file:///.file/id=6637683.2924283"
如何获取上述参考并将 POSIX 路径作为文本字符串 (/Home/stian/Downloads/Comprehensive Exam (1).doc)?
我可以获得整个参考的文本版本,如下所示:
app('Finder').selection.get[0].get.to_s
=> "app("/System/Library/CoreServices/Finder.app").disks["Home"].folders["stian"].folders["Downloads"].document_files["Comprehensive Examination (1).doc"]"
所以我想我可以手动解析它并构建 POSIX 路径,但这似乎非常麻烦和脆弱。
谢谢你的帮助!