rubyosa-0.4.0 で Finder アイテムを獲得する奴の書き直し
http://www.midore.net/daybook/2007/04/1176460414.html
require 'rbosa'
OSA.utf8_strings = true
finder = OSA.app('Finder')
def folds(fold)
print "Folder #{fold.name}\n"
return nil if fold.get.items.empty?
# if fold.get.items.size >= 20
fold.get.files.each{|i| puts "File #{fold.name}/#{i.name}" }
fold.get.items.each{|i| folds(i) if i.get.class.name == "OSA::Finder::Folder" }
end
def desktopitems(obj)
obj.each{|x|
case x.get.class.name
when /Disk/ : print "Disk:: #{x.name}\n" # need HDD mount
when /Folder/ : folds(x)
when /File/ : print "File #{x.name}\n"
end
}
end
print "==Desktop's Folders and Files==\n"
desktopitems(finder.items)
print "=="
結果
==Desktop's Folders and Files==
File finderitems.rb
File get_properties.rb
File rbosa_finder.txt
Folder xxx
File xxx/1.txt
Folder zzz
File zzz/hoge.rb
Folder ddd
File ddd/finder.rb
File ddd/untitled.rb
Folder 名称未設定フォルダ
==
++ memo ++
システム環境 セキュリティーFileVault 「切」にしていないと RubyOSA 動かない。
OS X 10.4.10 FInder.app Version
tell application "Finder"
version
end tell
# => "10.4.7"
--imported_from
http://www.midore.net/daybook/2007/09/1188965456.html
+++ 追記 +++
2010-02-06
関連する記事
"RubyOSA"ラベルがついた全ての記事
0 件のコメント:
コメントを投稿