3

Snow Leopard を使用していたとき、Applescript を作成するときに次のパターンを何度も使用しました。

on run args
    set filePath to POSIX file (item 1 of args) as alias
        ...
end run

ただし、Mountain Lion にアップグレードした後、上記のスクリプトで警告が表示されるようです。

2012-08-10 15:12:12.305 osascript[54131:303]
CFURLGetFSRef was passed this URL which has no scheme
(the URL may not work with other CFURL routines): path/to/input/file.ext

誰でもエラーの意味を理解できますか?

4

2 に答える 2

5

これにより、問題と解決策が明確になります。それではまず問題から

TB1T-Bboot:$ cat tmp.applescript
tell application "Finder"
        set MacOSpath to POSIX file "test-file" as alias
end tell
TB1T-Bboot:$ osascript tmp.applescript
2012-09-24 22:25:50.022 osascript[2564:707] CFURLGetFSRef was passed this URL which has no scheme (the URL may not work with other CFURL routines): test-file
alias TB1T-Bboot:Users:archive:test-file
TB1T-Bboot:$ 

今問題なく:

TB1T-Bboot:$ cat tmp.applescript
tell application "Finder"
        set MacOSpath to POSIX file "/Users/archive/test-file" as alias
end tell
TB1T-Bboot:$ osascript tmp.applescript
alias TB1T-Bboot:Users:archive:test-file
TB1T-Bboot:$

したがって、パスが絶対ではなく相対であると不平を言っています。この警告は Lion では表示されません。

于 2012-09-24T21:40:30.067 に答える
0

簡単な修正は、パスの前にfile:///. Mountain Lion はすべての URL を想定しているため、「ネイキッド」パスは機能しません。

たとえば、/Users/RobertoAloi/file.txt you would pass infile:///Users/RobertoAloi/file.txt` が必要な場合。

CFURLGetFSRef の詳細は、https: //developer.apple.com/library/mac/#documentation/CoreFOundation/Reference/CFURLRef/Reference/reference.html にあります。

于 2012-08-10T13:22:59.607 に答える