I have an AppleScript that has been written and it works as such, but I need to change the way it creates the folder structure. The script does the following:
- Folder is selected which contains files (in my case it will be photos).
- It will then look at the pictures created date.
- Create a YYYY (Year folder if not already created).
- Create a MM (Month folder if not already created).
- Create a DD (Day folder if not already created).
- It will then move the photo into this folder and repeat for the next photo and repeat until completed.
The current folder structure is created as follows:
2018 "YYYY"
├── 2018-01 "MM"
├── 2018-02
This is great and works as designed, but I have changed my mind on how I would like the folders to look like. I would like the following structure (which is almost the same just a different naming structure:
2018
├── 001 January
│ ├── 20180101
│ └── 20180102
├── 002 February
│ ├── 20180201
│ └── 20180202
└── 003 March
├── 20180301
└── 20180302
Now I have tried to work out where the script generates this but I have failed, so now I am turning to this great place for some help.
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