0
3レベルの深さのフォルダがあり、各レベルには十分な量のファイルが含まれています。私は下のスクリプトで2つのレベルを深めることができますが、3番目のレベルでは少し難題があります。どのように私は1つのレベルを深くすることになっているかについてのいくつかの指導を提供して気になるでしょうか?私がAppleScriptでどのように動作するかを調べようとしているので、Pythonや他の言語を使用することはできません。深いドリルを再帰的に処理する
set sourceFolder to (choose folder)
tell application "Finder"
my changeFileNameCase(sourceFolder, "upper")
repeat with subFolder in (get every folder of folder sourceFolder)
my changeFileNameCase(subFolder as alias, "upper")
#This Is No Good
repeat with theFolder in (get every folder of folder subFolder)
my changeFileNameCase(theFolder, "upper")
end repeat
end repeat
end tell
on changeFileNameCase(targetFolder, caseToSwitchTo)
tell application "Finder"
set fileList to every file of folder targetFolder
repeat with theFile in fileList
set oldName to name of theFile
set newName to my changeCaseOfText(oldName, caseToSwitchTo)
set the name of theFile to newName
end repeat
end tell
end changeFileNameCase
ああその名前を変更
file
ある場合は、これを行っている場合は、私はほとんど見folder
ある場合しかし、それはtheItemがフォルダのように見えますが、これはフォルダの名前を変更します。ここではファイルの名前を変更するだけです。私はサブフォルダのリストを作成する必要があると仮定していますか? theItemがフォルダの場合 - サブフォルダのリストを作成しますか? – Jesseいいえ、項目がフォルダの場合は、ハンドラを再帰的に呼び出します。レベルの数は関係ありません。 – vadian
第2の見て、私はハンドラがそれ自身を呼び出すのを参照してください。いずれにせよ、自分自身を呼び出す際にエラーをスローするエラー "Finderにはエラーがあります:changeFileNameCaseを続行できません。"番号-1708私はこれを選ぶ時間を過ごすでしょう – Jesse