Hi everyone,
Since OS X smart folders are simply plists (without the .plist extension), I had an idea to modify the search parameters of one programmatically. One of the commonly used plist strategies is to employ the command line utility ‘defaults’. Unfortunately, that only works with plists that have the .plist extension.
Is there another approach that that seems to be generally useful?
-Tim
         
        
          
        
           
           
           
         
         
            
            
          
       
      
        
        
          Plists can generally be read 3 ways. 1) as a text file, 2) using System Events, and 3) using the defaults command. So if defaults doesn’t work try the other 2.
For example, if I wanted to know the raw query from a saved search I could do either of these. And you could write to the plist in the same manner.
set searchPlist to (path to desktop folder as text) & "search.savedSearch"
tell application "System Events"
	set plist to property list file searchPlist
	set theValues to value of property list items of plist
	set theQuery to RawQuery of (item 1 of theValues)
end tell
set searchPlist to (path to desktop folder as text) & "search.savedSearch"
set textContents to read file searchPlist
set text item delimiters to "<key>RawQuery</key>
	<string>"
set a to text item 2 of textContents
set text item delimiters to "</string>"
set theQuery to text item 1 of a
set text item delimiters to ""
return theQuery
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          That looks great. I’ll give it a go. Thanks!
-Tim