It is very common to generate reoccurring reports in FileMaker that get saved to the user’s computer. Perhaps you would like to organize these reports by day or type. OS level folders and subfolders are a great way to do this. This demo file attached shows you how to create a folder and a subfolder on your user’s computer using FileMaker.
Here’s an overview on how the sample file works:
- The layout asks you to enter a folder name and a location for the folder (either desktop or documents folder). If the location is the same every time, you can hard code the location in your script.
- The script confirms that none of these values are empty.
- The subfolder name is calculated based on the date and time. This ensures that no two subfolders will have the same name, which would cause an error.
- Check if we are on Windows or Mac.
- If we are Windows, we run a Send Event script step that makes the directory specified.
- If we are on Mac, perform applescript to create the main folder, and then perform applescript again to create the subfolder.
- Let the user know if there was an error or if everything was successful.
You can download the demo file here: CreateFolders.fmp12 (Original File)
Paul McCudden from Peak 14 Solutions has enhanced the file to include parameters in order to account for custom file paths: CreateFolder_PaulMcCudden
Makah,
Thanks for the sample file – clear, simple, verrry useful! Especially appreciate the platform-independent element given that my knowledge and preferences are for Macs and my PC knowledge is more limited.
Jim
Hi Jim! So glad you found it useful! Thank you for the feedback!
Makah
Good idea, Thanks for sharing!
Nice and clear, a good foundation to create a recursive version that handles any valid path, even when folders are missing somewhere along that path.
Nice clean Applescript. I’ve been doing similar scripts through FM to create job folders and subfolders on a production server. FM then builds the directories in the correct location, based on client name, and will open the folder if it already exists.
When it’s time to archive, FM knows where the folders are, since it calculated the paths where they are created, and then can grab all the file names and specs in those folders before archiving.
Hello. Very cool setup! So I’m a novice at this, and I’m trying to get the script to create a folder in a specific place on my Windows computer (not on the Desktop or in the Documents directory). For example, I’d like the script to create the FolderName in C:\Users\Username\Music\. Could you possibly help me out?
Hi David. I was able to create the new folder in my music folder by doing the following in the sample file:
If that doesn’t work you may have a permissions issue on your Music folder. Hope that helps! Good luck!
Hey, thanks so much for the reply! I’ll give it a whirl!
I am trying to implement a feature in the filemaker database I am creating for my work that uses your technique of making a folder using AppleScript in Filemaker. i am running into some issues since the folder I want to create is on our Apple Server and not on the local machine. The server drive (share) is named “Art_Department”. How would I modify the applescript to create a folder on the server instead of the local desktop or document folder. Any help is greatly appreciated.
Hi David, I would like to create something similar as Makah (Jan 11, 2016). Unfortunately your solution doesn not work for me because: 1. I don’t have Filemaker Advanced, so no debugger and 2. I use Mac. The script uses ‘desktop’ and ‘documents’ near the end of the script. I cannot find how to change these to a new field (PATH), where the new path could be written into. Any help is welcome!
Any chance of uploading a Demo File that allows us to define the path in a field? I just can’t seem to get it. Running on MAC
Hi Frank, for the OSX version, the applescript is creating the path, not filemaker. I’m using applescript’s “path to desktop folder” function or “path to documents folder” function to get the path, which is set as a variable in the applescript defined as “theOutputFolderPath”. I’m not an applescript expert, so I’m not sure how to construct a path that’s not to the desktop or the documents folder; I would have to look it up. Let me know if you don’t find a solution and I will do some digging.
Very nice blog post and demo file…
Here is one way to discover a folder path…
[begin excerpt]
set a_folder_path_HFS to choose folder — or choose file
set a_folder_path_HFS to a_folder_path_HFS as string
set the clipboard to a_folder_path_HFS
display dialog “the path to the folder is on the clipboard.” buttons “OK” giving up after 3 — seconds
[end excerpt]
How to set color/label index and type coercion here:
https://community.filemaker.com/message/644537?et=watches.email.thread#644537
Thanks.
Tony
Hi there… The demo file seems to be completely empty… Any chance you can mail me a working version?
Hi Dom,
Try saving the file as a .zip file when you download it. Then unzip the file and it should work. Apologizes for the confusion.
Makah
This is a great tool, is there a way to modify the applescript and windows script to go to a file path, instead of just the desktop or documents? I’d like to create new folders within our Dropbox, which is always in a users home directory on Mac, but on Windows it can vary depending on OS version.
Hi Tyler, thanks for the feedback. I haven’t actually tried it myself, but if you look at Tony White’s comment above, he does provide some tips on how to set the path to something other than documents/desktop for AppleScript. According to this article about applescript, (https://discussions.apple.com/thread/3809986), it looks like you can change the path to “Mac HD:Users::Dropbox” where is the computer’s user name.
For Windows, see my comment above in reply to David where I help him with the music folder. If the path varies, you can try using the Get Directory () script step to have the user select the path. This script step also has a “Allow Create Folders” option so they can create new folders from this dialog as well. Hope that helps!
Hey Everyone. I noticed a lot of people are asking about more custom file paths. I modified the wonderful script that Makah created to do this. Sadly I can’t host the file here (if anyone at Soliant Consulting would like to host it, I can email it to them), but all it takes is modifying a few things. All the below assumes that $path contains the path and $name contains the folder name:
Windows (largely unchanged – mainly took out the sub folder):
Set Variable [$windowPath] ; Value: Substitute ( “/” & $path; [“//”; “”]; [“/”; “\\”])
Send Event [ “” ; “aevt” ; “odoc” ; “cmd.exe /C MKDIR ” & Quote( $windowsPath & $name & “\\”)]
Mac:
Set Variable [$appleScriptPath ; Value: Let (
[
~path = Substitute ( $path ; “/” ; “:”);
~cutLeft = GetAsNumber ( Left ( ~path ; 1 ) = “:” );
~cutRight = GetAsNumber ( Right ( ~path ; 1 ) = “:” )
];
Middle ( ~path ; 1 + ~cutLeft ; Length ( ~path ) – ~cutLeft – ~cutRight )
) ]
Perform AppleScript [ “set folderPath to ” & Quote ( $appleScriptPath ) &¶&
“set folderName to ” & Quote( $name) &¶&
“tell application ” & Quote ( “Finder” ) &¶&
” if (exists folder (folderPath & folderName as string)) = false then make new folder at folderPath with properties {name:folderName} ” &¶&
“end tell”
]
Sorry since that’s a little confusing to read. If anyone wants a copy of the file, feel free to email me at paul@peak14.solutions.
Hi Paul,
Thank you for your comment and for sending me a copy of your updated file! I have updated the blog post to have a direct download link to your file. Thanks again!
Thanks for sharing it, this function will be very useful to me.
Regards
MD
Thanks so much for this. It’s wonderful.
It is making me delve into understanding AppleScript as I am trying to create a series of folders, sub folders and sub-sub folders and I *think* I’m getting somewhere…
I’m Mahmut, I’m asking for your help on a subject, I created a program with filemaker for the accounting and document tracking of a small company. I uploaded it to filemaker server. I can connect remotely and open the program. I have filemaker container fields and I am uploading files here, my problem is, the document of each transaction I do is different, I want my request to create a folder belonging to that process when I run the script, and save the field contents of the documents in the container fields in that folder. Can you help with this.
In the container field options, under ‘Storage’, you can specify the folder structure that FileMaker Server should create when storing that field’s content. Including for instance creating a subfolder with the record Id or any other meaningful record data.