Tengo un AppleScript que ha sido escrito y funciona como tal, pero necesito cambiar la forma en que se crea la estructura de carpetas. El script hace lo siguiente:
- Se selecciona la carpeta que contiene los archivos (en mi caso será el de las fotos).
- A continuación, le mira las fotos de la fecha.
- Crear una AAAA (Año de la carpeta si no ya creado).
- Crear una MM (Mes de la carpeta si no ya creado).
- Crear un DD (Día de la carpeta si no ya creado).
- Luego mover la foto dentro de esta carpeta y repita el procedimiento para la foto siguiente y repita hasta que haya completado.
La actual estructura de la carpeta se crea de la siguiente manera:
2018 "YYYY"
├── 2018-01 "MM"
├── 2018-02
Esto es genial y funciona como fue diseñado, pero he cambiado mi mente en cómo me gustaría que las carpetas se parecen. Me gustaría tener la siguiente estructura (que es casi la misma solo una nomenclatura diferente estructura:
2018
├── 001 January
│ ├── 20180101
│ └── 20180102
├── 002 February
│ ├── 20180201
│ └── 20180202
└── 003 March
├── 20180301
└── 20180302
Ahora he intentado averiguar donde se genera la secuencia de comandos de esto, pero me han fallado, así que ahora estoy volviendo a este gran lugar para un poco de ayuda.
on run
SortFiles(POSIX path of (choose folder))
end run
on open (DroppedFolder)
set DroppedFolder to POSIX path of DroppedFolder
if text (length of text of DroppedFolder) of DroppedFolder is not "/" then quit
SortFiles(DroppedFolder)
end open
on SortFiles(SortFolder)
set AppleScript's text item delimiters to return
set SortFolderContents to the text items of (do shell script "find '" & SortFolder & "' -type f")
set FolderMakeList to {}
repeat with ThisItem in SortFolderContents
set ThisFile to ThisItem as string
if ThisFile does not contain "/." then
tell application "Finder"
set DateString to text 1 thru 7 of ((creation date of ((POSIX file ThisFile) as alias)) as «class isot» as string)
set ThisFilesFolder to SortFolder & text 1 thru 4 of DateString & "/"
set ThisFilesSubfolder to ThisFilesFolder & text 1 thru 7 of DateString & "/"
end tell
if ThisFilesFolder is not in FolderMakeList then
try
do shell script ("mkdir '" & ThisFilesFolder & "'")
end try
set FolderMakeList to FolderMakeList & ThisFilesFolder
end if
if ThisFilesSubfolder is not in FolderMakeList then
try
do shell script ("mkdir '" & ThisFilesSubfolder & "'")
end try
set FolderMakeList to FolderMakeList & ThisFilesSubfolder
end if
try
do shell script ("mv '" & ThisFile & "' '" & ThisFilesSubfolder & "'")
end try
end if
end repeat
return FolderMakeList
end SortFiles