Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (*
- Trim File Names
- This script is designed to trim the name of specific folders in the front window of the desktop.
- If no folder windows are open, the script will affect folders on the desktop.
- Copyright © 2001–2007 Apple Inc.
- You may incorporate this Apple sample code into your program(s) without
- restriction. This Apple sample code has been provided "AS IS" and the
- responsibility for its operation is yours. You are not permitted to
- redistribute this Apple sample code as "Apple sample code" after having
- made changes. If you're going to redistribute the code, we require
- that you make it clear that the code was descended from Apple sample
- code, but that you've made changes.
- *)
- -- The following line is disabled due to a Menu Manager bug
- --set the source_folder to (choose folder with prompt "Pick the folder containing the folders to rename:")
- try
- tell application "Finder" to set the source_folder to (folder of the front window) as alias
- on error -- no open folder windows
- set the source_folder to path to desktop folder as alias
- end try
- repeat
- display dialog "Text to trim from every file name:" default answer "" buttons {"Cancel", "Trim Start", "Trim End"} default button 2
- copy the result as list to {the text_to_trim, the button_pressed}
- --if the button_pressed is "Cancel" then return "user cancelled"
- if the text_to_trim is not "" then exit repeat
- end repeat
- set the character_count to the number of characters of the text_to_trim
- set the item_list to list folder source_folder without invisibles
- set source_folder to source_folder as string
- repeat with i from 1 to number of items in the item_list
- set this_item to item i of the item_list
- set this_item to (source_folder & this_item) as alias
- set this_info to info for this_item
- if folder of this_info is false then
- set the current_name to the name of this_info
- if the button_pressed is "Trim Start" then
- if the current_name begins with the text_to_trim then
- set the new_name to (characters (the character_count + 1) thru -1 of the current_name) as string
- set_item_name(this_item, new_name)
- end if
- else
- if the current_name ends with the text_to_trim then
- set the new_name to (characters 1 thru -(the character_count + 1) of the current_name) as string
- set_item_name(this_item, new_name)
- end if
- end if
- end if
- end repeat
- beep 2
- on set_item_name(this_item, new_item_name)
- tell application "Finder"
- --activate
- set the parent_container_path to (the container of this_item) as text
- if not (exists item (the parent_container_path & new_item_name)) then
- try
- set the name of this_item to new_item_name
- on error the error_message number the error_number
- if the error_number is -59 then
- set the error_message to "This name contains improper characters, such as a colon (:)."
- else --the suggested name is too long
- set the error_message to error_message -- "The name is more than 31 characters long."
- end if
- --beep
- tell me to display dialog the error_message default answer new_item_name buttons {"Cancel", "Skip", "OK"} default button 3
- copy the result as list to {new_item_name, button_pressed}
- if the button_pressed is "Skip" then return 0
- my set_item_name(this_item, new_item_name)
- end try
- else --the name already exists
- --beep
- tell me to display dialog "This name is already taken, please rename." default answer new_item_name buttons {"Cancel", "Skip", "OK"} default button 3
- copy the result as list to {new_item_name, button_pressed}
- if the button_pressed is "Skip" then return 0
- my set_item_name(this_item, new_item_name)
- end if
- end tell
- end set_item_name
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement