在递归处理中深入钻研

时间:2017-03-31 18:49:44

标签: applescript

我有一个三层深的文件夹,每个级别包含大量文件。我可以通过下面的脚本获得两个级别的深度,但是第三个级别构成了一个挑战。有人会介意提供一些关于我应该如何更深入一级的指导吗?使用python或其他语言是不可接受的,因为我试图看看它如何与AppleScript一起使用。

{{1}}

1 个答案:

答案 0 :(得分:1)

要使处理程序递归,您必须获取文件夹的所有项目并检查每个项目的类。

  • 如果类为folder,则调用传递文件夹的处理程序
  • 如果班级file重命名
set sourceFolder to (choose folder)
changeFileNameCase(sourceFolder, "upper")

on changeFileNameCase(targetFolder, caseToSwitchTo)
    tell application "Finder"
        set theList to every item of targetFolder
        repeat with i from 1 to count theList
            set theItem to item i of theList
            if class of theItem is folder then
                my changeFileNameCase(theItem, caseToSwitchTo)
            else
                set oldName to name of theItem
                set newName to my changeCaseOfText(oldName, caseToSwitchTo)
                set name of theItem to newName
            end if
        end repeat
    end tell
end changeFileNameCase