0

在 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 路径,但这似乎非常麻烦和脆弱。

谢谢你的帮助!

4

1 回答 1

2

在 Python 中,它是

app('Finder').selection.get(resulttype=k.alias)[0].path

我猜在Ruby中会是

app('Finder').selection.get(:result_type=>:alias)[0].path
于 2011-08-08T18:35:01.173 回答