У меня есть корневая папка, и в ней есть подпапки. Обычно это только один уровень, но он может быть глубже. Эти папки будут иметь разные файлы, включая файлы .rar
. Я хочу создать рекурсивную функцию, которая перемещает папки, проверить, является ли файл rar-файлом и открыть/извлечь его. Код работает на первом уровне без каких-либо проблем. Но рекурсивный вызов не работает, а обработка ошибок скрипта Apple ужасна. Вот код, который я сделал до сих пор.AppleScript Обработка файлов в папках рекурсивно
set folderName to "Macintosh HD:Users:Teja:Desktop:Madhu Babu:"
process_folder("", folderName)
on process_folder(root, folderNameToProcess)
set fileExt to {".rar"}
tell application "Finder"
set theItems to every file of folder (root & folderNameToProcess)
repeat with theFile in theItems
copy name of theFile as string to FileName
repeat with ext in fileExt
if FileName ends with ext then
open theFile
delete theFile
end if
end repeat
end repeat
set theFolders to name of folders of folder (root & folderNameToProcess)
repeat with theFolder in theFolders
copy theFolder as string to TheFolderName
display dialog (folderNameToProcess & TheFolderName & ":")
try
process_folder(folderNameToProcess, TheFolderName & ":")
on error errStr number errorNumber
display dialog errStr
end try
end repeat
end tell
end process_folder