on run
set DLFolderAlias to my getDownloadFolder()
my setSafariDLFolder(DLFolderAlias)
beep
end run --------------------
on getDownloadFolder()
set pText to "Choose a new download folder for Safari ..."
set DLFolder to choose folder with prompt pText default location (path to desktop) -- error -128 on cancel
return DLFolder -- an alias
end getDownloadFolder --------------
on setSafariDLFolder(folderAlias)
set folderPath to (POSIX path of folderAlias)
set prefsFolder to (path to preferences folder from user domain)
tell application "Finder" to set prefsFile to (file "com.apple.Safari.plist" of prefsFolder) as alias
tell application "System Events" to set infoRecord to value of property list file (prefsFile as text) -- READ
set infoRecord to {DownloadsPath:folderPath} & infoRecord -- MODIFY
tell application "System Events" to set value of property list file (prefsFile as text) to infoRecord -- WRITE
end setSafariDLFolder ---------------