我可以使用AppleScript一次選擇文件或文件夾嗎?現在AppleScript選擇文件或文件夾
我可以用
tell application "SystemUIServer" to return POSIX path of (choose file)
或
tell application "SystemUIServer" to return POSIX path of (choose folder)
獲取文件或文件夾。但是我無法一次獲取文件或文件夾。
我可以使用AppleScript一次選擇文件或文件夾嗎?現在AppleScript選擇文件或文件夾
我可以用
tell application "SystemUIServer" to return POSIX path of (choose file)
或
tell application "SystemUIServer" to return POSIX path of (choose folder)
獲取文件或文件夾。但是我無法一次獲取文件或文件夾。
不,你不能以「選擇文件」或「選擇文件夾」的動詞,但選擇一個文件或文件夾(或多個文件/文件夾)由底層NSOpenPanel
支持這樣做。所以你可以用AppleScriptObjC來做到這一點。下面是使用ASObjCRunner(來自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的列表;結果可能如下所示:
{file "Macintosh HD:Users:nicholas:Desktop:fontconfig:", file "Macintosh HD:Users:nicholas:Desktop:form.pdf"}
首先,你不需要知道這一點。其次,目前尚不清楚爲什麼你需要這個。你的意思是你想選擇一個文件,它的文件夾?這不是你怎麼做的;您選擇如果您希望能夠在同一時間選擇多個文件夾和文件的文件,然後解析文件路徑,包含文件夾或使用的多種方法之一要做到這一點,像
set f to (choose file)
set posixF to POSIX path of f
tell application "Finder" to set filesDir to container of f as alias as text
set posixDir to POSIX path of filesDir
{f, posixF, filesDir, posixDir}
,我不要認爲有一種「純蘋果」的方式來做到這一點(除了使用拖放感知腳本應用程序)。