Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

iostream.h

macrumors regular
Original poster
Mar 4, 2004
231
0
Albuquerque, NM
I have tons of files in a bunch of subdirectories within a main directory. I'd like to preserve this hierarchy, but would also like to have access to these files in one chunk as aliases in another folder. Would this be possible with applescript? And if so, what would be the best way to go about it?

EDIT: Also, would it be possible to have this folder of aliases dynamically update after running the script by itself?
 

HexMonkey

Administrator emeritus
Feb 5, 2004
2,240
504
New Zealand
You could use this script to create the initial aliases:

Code:
tell application "Finder"
	--Get source and destination folders
	set sourceFolder to choose folder with prompt "Please choose a source folder for the files"
	set destinationFolder to choose folder with prompt "Please choose a destination folder for the aliases"
	set theItems to every item of sourceFolder
	
	--Iterate through the items in sourceFolder
	repeat
		set nextItem to first item of theItems
		
		--First check that the item is not destinationFolder so that we don't make aliases of the aliases
		if (nextItem as string is not destinationFolder as string) then
			if ((class of nextItem) is folder) then
				--The item is a folder, so add its files to the end of the array
				set theItems to theItems & every item of nextItem
			else
				--The item is a file, so make an alias of it in destinationFolder
				tell application "Finder" to make alias to nextItem at destinationFolder
			end if
		end if
		
		--Remove the item from the array, or exit from the loop if it's the last item
		if ((count of theItems) is 1) then
			exit repeat
		else
			set theItems to items 2 thru (count of theItems) of theItems
		end if
	end repeat
	display dialog "Finished created aliases" buttons "OK" default button 1 with icon 1
end tell

Having the folder of aliases automatically update would be quite complicated though. Firstly you'd need to attach a folder action to the source folder that creates aliases when items are added to the folder. It would also have to find and delete an alias when items are removed from the folder. Finally, it would have to automatically add/remove the folder action to/from its subfolders, since folder actions aren't recursive.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.