问题描述
我可以使用 AppleScript 一次性选择文件或文件夹吗?
can I use AppleScript to choose either file or folder in one time?
现在我可以使用
tell application "SystemUIServer" to return POSIX path of (choose file)
或
tell application "SystemUIServer" to return POSIX path of (choose folder)
获取文件或文件夹.但是我无法一次性获取文件或文件夹.
to get file or folder. However I cannot get file or folder in one time.
推荐答案
不,你不能用选择文件"或选择文件夹"动词来做,而是选择一个文件或文件夹(或多个文件/文件夹)由底层 NSOpenPanel
支持.所以你可以用 AppleScriptObjC 来做到这一点.这是一个使用 ASObjCRunner(源自 这里):
No, you can't do it with "choose file" or "choose folder" verbs, but choosing a file or folder (or multiple files/folders) is supported by the underlying NSOpenPanel
. So you can do it with AppleScriptObjC. Here's an example using ASObjCRunner (derived from here):
script chooseFilesOrFolders
tell current application's NSOpenPanel's openPanel()
setTitle_("Choose Files or Folders") -- window title, default is "Open"
setPrompt_("Choose") -- button name, default is "Open"
setCanChooseFiles_(true)
setCanChooseDirectories_(true)
setAllowsMultipleSelection_(true) -- remove if you only want a single file/folder
get its runModal() as integer -- show the panel
if result is current application's NSFileHandlingPanelCancelButton then error number -128 -- cancelled
return URLs() as list
end tell
end script
tell application "ASObjC Runner"
activate
run the script {chooseFilesOrFolders} with response
end tell
ASObjCRunner 将 NSURL
对象的 NSArray
转换为 file
的 AppleScript 列表;结果可能类似于:
ASObjCRunner converts a NSArray
of NSURL
objects into an AppleScript list of file
s; the results can look something like:
{file "Macintosh HD:Users:nicholas:Desktop:fontconfig:", file "Macintosh HD:Users:nicholas:Desktop:form.pdf"}
这篇关于AppleScript 选择文件或文件夹的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!