首页 > 解决方案 > AppleScript - 如何获取文件夹的第一个子路径(仅当第一个子是文件夹而不是文件时)?

问题描述

你如何获得文件夹的第一个子路径(当第一个子是文件夹时)?

说你有...

Folder 1 ¬
  File 1
  File 2
  Folder 2 ¬
    File A
    File B
    File C
    File D

用例:

我选择了一批文件夹,所有文件夹都与以下文件夹处于同一级别Folder 1set foldersToProcess to choose folder with multiple selections allowed

然后,我遍历每个排队的文件夹foldersToProcess,在这个过程中,我想每次都查看Folder 1(being Folder 2) 的第一个子文件夹。

我该怎么做呢?

标签: applescriptparent-childscript

解决方案


您应该使用try 块,因为可能某些选定的文件夹根本不包含子文件夹。因此,如果没有 try 块,它将在请求空列表的文件夹 1 时抛出错误。

要将第一个文件夹作为系统事件的文件夹引用

set chosenFolders to (choose folder with multiple selections allowed)

set firstFolders to {}
repeat with anAlias in chosenFolders
    try
        tell application "System Events" to ¬
            set end of firstFolders to folder 1 of folder (anAlias as text)
    end try
end repeat

要获取第一个文件夹的HFS 路径,请编辑相应的代码行:

tell application "System Events" to ¬
            set end of firstFolders to path of folder 1 of folder (anAlias as text)

要获取第一个文件夹的Posix 路径,请编辑相应的代码行:

tell application "System Events" to ¬
            set end of firstFolders to POSIX path of folder 1 of folder (anAlias as text)

推荐阅读