Tengo un AppleScript que se ha escrito y funciona como tal, pero necesito cambiar la forma en que crea la estructura de carpetas. El script hace lo siguiente:
- Se seleccionó la carpeta que contiene archivos (en mi caso, serán fotos).
- Luego mirará las fotos creadas en la fecha.
- Cree un YYYY (la carpeta del año, si aún no se ha creado).
- Cree un MM (carpeta de mes si no está creada).
- Crea una DD (carpeta de día si no está creada).
- Luego moverá la foto a esta carpeta y la repetirá para la siguiente foto y la repetirá hasta que se complete.
La estructura de carpetas actual se crea de la siguiente manera:
2018 "YYYY"
├── 2018-01 "MM"
├── 2018-02
Esto es genial y funciona según lo diseñado, pero he cambiado de opinión sobre cómo me gustaría que se vieran las carpetas. Me gustaría la siguiente estructura (que es casi la misma, solo una estructura de nomenclatura diferente:
2018
├── 001 January
│ ├── 20180101
│ └── 20180102
├── 002 February
│ ├── 20180201
│ └── 20180202
└── 003 March
├── 20180301
└── 20180302
Ahora he intentado averiguar dónde genera el script esto, pero he fallado, por lo que ahora me dirijo a este gran lugar en busca 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