Estou no processo de limpeza de uma enorme biblioteca de mangas (principalmente - mas não apenas - arquivos de imagem). Cada manga tem uma pasta principal contendo subpastas, uma para cada volume.
Mas, às vezes, as pastas de volume contêm apenas arquivos de imagem e outras vezes contêm subpastas.
Eu gostaria de um script que, para a pasta de mangá selecionada:
- verificar quais pastas de volume têm subpastas
- achatar a estrutura de diretórios das pastas de volume com
subpastas. Em vez de colocar todas as imagens na pasta pai e
apagando as subpastas, gostaria de criar uma nova pasta no
área de trabalho e copie todas as imagens das subpastas.
- renomeie a pasta criada na área de trabalho após o pai original
pasta
Antes:
manga_folder
volume1_folder
subfolder1 / image1, image2, image3
subfolder2 / image4, image5, image6
subfolder3 / image7, image8, image9
volume2_folder
image1, image2, image3, image4, image5, image6, image7, image8, image9
volume3_folder
subfolder1 / image1, image2, image3
subfolder2 / image4, image5, image6
subfolder3 / image7, image8, image9
Depois:
Desktop:
volume1_folder
image1, image2, image3, image4, image5, image6, image7, image8, image9
volume3_folder
image1, image2, image3, image4, image5, image6, image7, image8, image9
As pastas originais devem permanecer intactas para que eu possa verificar se há arquivos perdidos etc.
Agora, eu uso um AppleScript que achata a estrutura de diretórios para cada pasta de volume que eu selecionar. Ele cria uma nova pasta dentro, com o nome de sua pasta pai com todas as imagens copiadas dentro.
O que não faz:
- verifique quais pastas de volume possuem subpastas (preciso selecionar cada
pasta de volume individualmente e iniciar o script de cada vez)
- move a pasta criada com a estrutura de diretórios nivelada para a
Desktop
Eu mesmo tentei implementar as alterações, mas poderia mover a nova pasta para a área de trabalho ou renomeá-la depois da pasta pai. Quando eu coloco as duas instruções (qualquer que seja a primeira a ser colocada), eu teria um erro dizendo que não poderia encontrar a pasta depois de executar a primeira instrução. Aqui está o script:
tell application "Finder"
set theTopFolder to (selection as alias)
set theFiles to a reference to every file of (entire contents of folder theTopFolder)
set theNewFolder to make new folder at theTopFolder with properties {name:"Flattened Files"}
duplicate theFiles to theNewFolder
set name of theNewFolder to name of theTopFolder
--move theNewFolder to "Macintosh HD:Users:xx:Desktop:"
end tell