OpenFolder ( path ; name )
A custom function to create and open a folder on the Mac OS X operating system.
Average rating: 3.9 (38 votes) Log in to vote
Matt Petrowsky ISO Productions, Inc. http://www.filemakermagazine.com |
[
f = folderName;
mypath = "/Volumes" & Substitute ( Get ( FilePath ) ; ["file:" ; ""]; [ Get ( FileName ) & ".fp7" ; ""] )
];
OpenFolder ( mypath; f )
)
New folder (relative to the FMP file) is created and opened if it does not exist. Otherwise the folder is simply opened.
Function definition: (Copy & paste into FileMaker's Edit Custom Function window)
NOTE: MACINTOSH ONLY FUNCTION
This function can be used to generate the AppleScript code needed to create and open a folder on Mac OS X. Simply supply a proper POSIX path and the name of the folder you want. It may not work with ~ designations so supply a full absolute path.
To use just make a script with Perform AppleScript and point to the calculation.
Comments
abonino, CH Bern Nov 16, 2011 |
||
FMPA tell error | ||
Rouel Fernandez, Mountain View, Ca Feb 9, 2012 |
||
The following: "\"" in the function produces an error: List usage is not allowed in this calculation. Using FM 11 Adv. |
||
G. Dyson, Lausanne, CH Jun 9, 2012 |
||
No-one has a solution to the error message given above? | ||
Lars, Berlin Oct 30, 2012 |
||
How can this used in a script step? | ||
Johan, Sweden Aug 31, 2013 |
||
This problem seems to remain still: The following: "\"" in the function produces an error: List usage is not allowed in this calculation. How can it be avoided? |
||
Charles Houghton-Webb, France Jan 7, 2014 |
||
Since Filemaker 7 : Substitute ( cmd ; """ ; "\"" ) does not work. You have to unescape everything, including the unescape character ! So you would write : Substitute ( cmd ; "\"" ; "\\\"" ) That should do the trick here ;-) |
||
Charles Houghton-Webb, France Jan 7, 2014 |
||
My above comment is true, but won't work here. The function needs to b re-written. The quoted forms are unnecessary, and you need single quotes on the path, rather than double ones. This should do the trick… at least it does for me ;-) Let( [ f = name; mypath = path & name ; pathVar = "$path" ; sh = "if [ ! -d " & pathVar & " ];then mkdir " & pathVar & "; open " & pathVar & "; else open " & pathVar & "; fi"; cmd = "path='" & mypath & "'; " & sh; // RAW SHELL SCRIPT CODE applescript = "do shell script \"" & cmd & "\"" // APPLESCRIPT FORMATTED PATH ]; applescript ) |
||
Charles Houghton-Webb, France Jan 7, 2014 |
||
Oooops !! I forgot to delete the f = name; line, which serves absolutely no purpose whatever. You can delete without problem ;-) |
||
Note: these functions are not guaranteed or supported by BrianDunning.com. Please contact the individual developer with any questions or problems.