Continuing the discussion from How would I calculate the size of a folder (including all contents)?:
Use Case
- Put this script in an Execute AppleScript Action.
- It will return size (in size-appropriate units) of all items (files, folders, sub-folders) in the folder currently selected in the Finder.
- If a Folder is NOT selected, an error msg is returned.
How To Use
- Select Folder in Finder
- Trigger this script, or macro with script in an Execute AppleScript Action.
property ptyScriptName : "Get Entire Folder Size of Finder Selection"
property ptyScriptVer : "1.1"
property ptyScriptDate : "2017-12-31"
property ptyScriptAuthor : "JMichaelTX"
# RETURNS: | text | Folder Size in Size-Appropriate Units;
# OR ERROR Msg if selection is not a folder.
use AppleScript version "2.5" -- El Capitan (10.11) or later
use framework "Foundation" -- this IS required
use scripting additions
## Some Scripts may work with Yosemite, but no guarantees ##
# This script has been tested ONLY in macOS 10.11.6+
tell application "Finder" to set finderSelectionList to selection as alias list
set folderAlias to item 1 of finderSelectionList
set itemKind to kind of (get info for folderAlias without size)
if (itemKind ≠ "folder") then
set scriptResults to "[ERROR]" & linefeed ¬
& "First Finder Item Selected MUST be a FOLDER."
else
--- Get Size in Bytes of ENTIRE Folder ---
tell application "System Events" to set folderSize to size of folderAlias
--- Convert Bytes to Size-Appropriate Units ---
set folderSize to (current application's NSByteCountFormatter's stringFromByteCount:folderSize countStyle:(current application's NSByteCountFormatterCountStyleDecimal)) as text
set scriptResults to folderSize
end if
return scriptResults