2014年04月29日

AppleScriptでファイルやフォルダを取得する

AppleScriptを使うからには、なにかしらフォルダやファイルを操作しようとしているはずだと思われます。
なので、操作したいフォルダやファイルを取得します。
以下その方法を何点か。

*****フォルダの取得 ---ダイアログが開くのでフォルダを選びます。結果はエイリアス(alias)で得られます

set theAlias to choose folder


例えばOSの入ってるHDDにあるピクチャフォルダの中の”tmp”というフォルダを選んだとすると、

結果; alias "Macintosh HD:Users:Ryo:Pictures:tmp:"

*****ファイルの取得 ---ダイアログが開くのでファイルを選びます。結果はエイリアス(alias)で得られます

set theAlias to choose file


例えば上記tmpフォルダ内のmypicture.jpgというファイルを選んだとすると、

結果; alias "Macintosh HD:Users:Ryo:Pictures:tmp:mypicture.jpg"


*****取得したエイリアスをテキストパスに変換

set textPath to theAlias as text


結果; "Macintosh HD:Users:Ryo:Pictures:tmp:"

set textPath to theAlias as string

set textPath to theAlias as Unicode text

でも同じ


*****POSIXパスに変換  alias, テキストパスから変換可。Finder参照からは直接変換できない。

set posixPath to POSIX path of theAlias

set posixPath to POSIX path of textPath

set posixPath to (textPath)'s POSIX path

set posixPath to (theAlias)'s POSIX path


結果; "/Users/Ryo/Pictures/tmp/"


*****Finderを使ってフォルダ参照(パス)を取得。指定したフォルダの中にある全てのフォルダのFinder参照がリストになって返ってくる。 alias, Finder参照が使用可。POSIXパスは不可。テキストパスは”alias textPath”で使用可

例えば上記で取得した ”theAlias” というエイリアスの中にある全フォルダがほしいとき、

tell application "Finder"

set theList to every folder of theAlias

end tell


 


tell application "Finder"

set theList to every folder of alias textPath

end tell



*****Finderを使ってファイル参照(パス)を取得。指定したフォルダの中にある全てのファイルのFinder参照がリストになって返ってくる。不可視ファイルは取得されないみたい。

tell application "Finder"

set theList to every file of theAlias

end tell



*****Finderで選んでいるフォルダおよびファイルのFinder参照を返す。2つ選んでも一つしか取得できない。リスト型ではないみたい。

tell application "Finder"

return selection

end tell


---------

set a to test()

set aAlias to a as alias

 

on test()

tell application "Finder"

return selection

end tell

end test

-----------

とかすると、Finder参照からaliasやテキストパスに変換可。


*****指定したフォルダ内にあるフォルダおよびファイルの全リストを取得。こちらはパスではなくただの名前がリストになって返ってくる。フォルダの指定にはaliasもテキストパスも使える。Finder参照は使えない。

set theList to (list folder theAlias)


結果; {".DS_Store", "1111.jpg", "mypicture.jpg", "test", "test.txt", "work"}
"test", "work”はフォルダ、"1111.jpg", "mypicture.jpg","test.txt”はファイル。".DS_Store”は不可視ファイル。

このままでは不可視ファイルも拾ってくるので、”without invisibles”を付けると、

set theList to (list folder theAlias without invisibles)


結果; {"1111.jpg", "mypicture.jpg", "test", "test.txt", "work"}
posted by Ryo Yamashita at 19:37| Comment(0) | AppleScript
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: