Folder structure with variable number of subfolders

Hello my first post here, and a beginner at scripting.

I’m looking for some help with this folder and subfolder script.

tell application "Finder"
	set projName to text returned of (display dialog "Please enter a Project Name:" default answer "Project_Name")
	set serNum to text returned of (display dialog "Enter a Series number or name:" default answer "")
	set serName to "Series_" & serNum
	set dialogResult to (display dialog "Enter the number of episodes:" default answer "1")
	
	repeat
		try
			set epsNumber to (text returned of dialogResult) as integer
			-- This test should be unnecessary, just exiting the loop should be fine.
			if class of epsNumber is integer then exit repeat
		on error m number n from o partial result r to t
			set unableToConvertToInteger to n is -1700 and o is text returned of dialogResult and t is integer -- e.g. "asdf"
			set numericResultTooLarge to n is -2702 and t is integer -- e.g. anything larger than 2^29-1
			if not (unableToConvertToInteger or numericResultTooLarge) then error m number n from o partial result r to t -- return {m, n, o, r, t} -- to see the error values, use the return instead
			
			display dialog "The starting number needs to be a valid integer!" buttons {"Enter again", "Cancel"} default button 1
			
			if result = {button returned:"Enter again"} then
				set dialogResult to (display dialog "Enter the number of episodes:" default answer "1")
			end if
		end try
	end repeat
	
	set Loc to choose folder "Choose Parent Folder Location"
	set newproj to (make new folder at Loc with properties {name:projName & "_" & serName}) as alias
end tell

set epNumberList to {}
repeat with i from 1 to epsNumber
	set end of epNumberList to i
end repeat

set subfolderList to {epNumberList, "Generics", {"Info", {"Credits"}}, {"Labels & Record Reports", {"Labels", "Record Reports"}}, "Web"}

set n to count of items in subfolderList
repeat with i from 1 to n
	set eachitem to item i of subfolderList
	if class of eachitem is list then
		my mysubfolders(newproj, eachitem)
	else
		tell application "Finder" to make new folder at newproj with properties {name:eachitem}
	end if
end repeat

on mysubfolders(parentfolder, mysublist)
	set nn to count of items in mysublist
	repeat with j from 1 to nn
		set eachitem to item j of mysublist
		if class of eachitem is list then
			set k to j - 1
			set nm to item k of mysublist
			set subfolder to ((parentfolder as text) & nm) as alias
			my mysubfolders(subfolder, eachitem)
		else
			tell application "Finder"
				make new folder at parentfolder with properties {name:eachitem}
			end tell
		end if
	end repeat
end mysubfolders

I would like to be able to add some (fixed) subfolders to each of the generated list of ‘episode’ folders, and also to have the episode folders have a suffix of ‘_Episode’ then number when generated.

Any help gratefully received.

Thank you
Duncan

Hi,

try this


property episodeSubFolders : {"Actors", "Credits"}
property episodeSuffix : "_Episode"

set projectName to text returned of (display dialog "Please enter a Project Name:" default answer "Project_Name")
set seriesNumberOrName to text returned of (display dialog "Enter a Series number or name:" default answer "")
set seriesName to "Series_" & seriesNumberOrName
repeat
	set {text returned:numberOfEpisodes} to display dialog "Enter the number of episodes:" default answer "1"
	try
		set numberOfEpisodes to numberOfEpisodes as integer
		if numberOfEpisodes ≤ 0 then error
		exit repeat
	on error
		display dialog "The starting number needs to be a valid integer greater than zero !" buttons {"Enter again", "Cancel"} default button 1
	end try
end repeat
set {TID, text item delimiters} to {text item delimiters, ","}
set episodeFolders to {}
repeat with i from 1 to numberOfEpisodes
	set end of episodeFolders to ((i as text) & episodeSuffix & "/{" & episodeSubFolders as text) & "}"
end repeat

set episodeFolders to episodeFolders as text
set text item delimiters to TID

set parentFolder to choose folder "Choose Parent Folder Location"
set folderStructure to "/" & quoted form of (projectName & "_" & seriesName) & "/{" & episodeFolders & ",Generics,Info/Credits,'Labels & Record Reports'/{Labels,'Record Reports'},Web}"
do shell script "/bin/mkdir -p " & quoted form of POSIX path of parentFolder & folderStructure


Thank you so very much that woks perfectly…much more elegant than my beginner’s attempt!