Is there a Safari extension which allow the user to select a different folder location whenever there is a new download?
The only way that I know of that allows for selecting a specific folder for each file download is by holding control and clicking the link. A menu appears and select 'Download Linked File As ...'
I was told that you may be able to setup something known as 'Folder Actions' which allows you to create a script for certain file extensions and once the file is downloaded to the default folder the script fires and puts the file in the folder you specified within the script.
I hate this "feature" of Safari, too. But I love Safari's other features enough that I figured out a work-around, until Apple comes to their senses and adds it.
This workflow is designed to ask me where to save a downloaded file, then show me the folder into which it was moved (so I can see the file name) and allow me to change the filename if I want. I need this because several of the sites from which I usually download have long randomly generated file names which are useless, so I need to rename files immediately. If you don't need or want either of those features in your workflow, you can skip adding the second and third actions and just use the Move Finder Items action.
Here's what I do:
- Open the Automator tool (you don't have to know any code to use it).
- Create a new "Folder Action" type document.
- Assign the Folder Action to the Downloads folder.
- Add these actions (in order): Move Finder Items, Reveal Finder Items, Name Single Item.
- Set the "Move Finder Items" action to use the Downloads folder as it's default (or whichever folder you are most likely to move things to - I use Downloads because most of the time I'm moving files into an archive structure and want it to be easy to skip this process by just hitting Return and leaving the file in Downloads when I don't do that.)
- Open the options for the "Move Finder Items" action and tick the checkbox for "Show this action when the workflow runs."
- Open the options for the "Name Single Item" action and tick the checkbox for "Show this action when the workflow runs."
Save your file & test.
I've also used Automator but in some other manner. It does not work as a charm due to Automator limitations / bugs / long load time, but well, at least it works :D
What this script does is simply stores into variable which files were added to "Downloads" folder, then ask user where to move them, stores the answer into another variable and then combine two variables to move the files to proper destination.
- Open the Automator tool.
- Create a new "Folder Action" type document
- Assign the Folder Action to the Downloads folder
- Now add following items in the given order:
- "Set Variable value" and set it for "Files" variable (create new variable for it).
- "Ask for Finder Items". Give it proper prompt (e.g. "Choose destination folder") and starting place (I selected home directory). Set expected type to "Folders". Ignore input for the action by selecting checkbox in Options of the action.
- "Set Variable value" and set it for "Destination Path" variable (create new variable for it). It will store the destination path into variable for future use.
- "Get Variable value" and set it to retrieve "Files" variable. Ignore input for the action by selecting checkbox in Options of the action.
- "Move Finder items" and set destination path for it to be variable "Destination Path".
Then save it in Automator. Now, everytime something is added to "Downloads" folder, Automator will run above workflow.
The problem is that the prompt for destination folder does not show up in the front, but in the back :/ So it is easy to forget about it. Thus, I extended my script to play system sound just before asking for destination folder. However playing system sound is not available in Automator actions library by default. You can download it here: http://www.macosxautomation.com/automator/examples/actions.html GL&HF!
Matthew Miller's approach works fine if your objective is to change long names to something more memorable.
But on other browsers I sometimes choose a different name to avoid overwriting an existing file. Matthew's sequence moves the file and then renames it, so an existing file would be overwritten before the name change (or the move would fail if you hadn't checked the overwrite box).
If you change the order of Automator actions to the following: Reveal Finder Items, Name Single Item, Move Finder Items
the file is renamed in the Downloads folder and then moved.
Note that you must rename the file or the move won't happen. If I don't want to give it a new name, I change the extension to what it is already..