FileMaker Pro 15-19
FileMaker Server 15-19
Mac OS 10.10-10.15
Manipulate any information on your disk
Troi File Plug-in lets you deal efficiently with any files or folders outside the database. All from within FileMaker you can:
- get data from files that are on the disk of the computer into FileMaker
- create files anywhere on the hard disk and put data from FileMaker fields into them
- manipulate files and folders on the disk: this includes creating, deleting, copying, moving and modifying files and folders
- query detailed information of files and folders: the size on disk, creation and modification dates and much more
- launch and reveal files directly from FileMaker
- manage your images and movies: get images and their metadata (IPTC, Exif, GPS, XML) inside your FileMaker database and write IPTC and Exif metadata too!
82 functions and 39 script steps give you ample power
Troi File Plug-in adds 82 functions to FileMaker, giving you virtually limitless possibilities! Starting with FileMaker 16 plug-ins can also add script steps. In File Plug-in version 12 you will find 39 functions which perform an action as script steps. You can select these in the script steps pane in Script Workspace, or you can begin typing the script step name, then choose it from the list that appears. The script steps significantly expand the possible actions you can perform with FileMaker.
Here we give you just some examples of what you can do with this plug-in:
Manage your media
Troi File Plug-in allows you to retrieve extensive image and movie data like width, height and depth, and much more. While we were at it we also added an extensive example file ManageMedia.fmp12. This example file combines some of the Troi File Plug-in’s functions to create a powerful Media Manager for images and movies. It shows how to import one or multiple images and/or movies from a folder. It also retrieves a wealth of metadata like width and height, IPTC metadata (amongst others caption, description, keywords, copyright), GPS, XMP and Exif metadata. Exif metadata is information about the time a photo was taken, aperture, shutter speed and the like. And did we mention the example file also works with movie files?
With Troi File Plug-in you can write EXIF and IPTC metadata information to your image files. By using the “-SetImageURL” switch you can set the Photoshop Image URL metadata (not part of the official IPTC specification). The “-UTF8CharSet” switch can be used together with the “-SetIPTC” and “-SetEXIF” switch. This will write the metadata encoded as UTF-8 text and will set the CodedCharacterSet tag in the written image file (which indicates the encoding) to UTF-8.
On macOS you can also add and change metadata like title, GPS and creation data in movie files (like .mov and .mp4).
Create thumbnails of your image and movie files
With Troi File Plug-in you can create thumbnails of your image files in any size, including square thumbnails, which is great for presenting multiple images to a user in a compact grid. We have added a grid view to the Thumbnail example file, which demonstrates (in a simplified way) how to do this. We also added the possibility to add a name when creating a thumbnail with the TrFile_CreateThumbnail function. The name is normally not visible, but will be used for example when you perform an Export Field Contents action later. Another feature is the possibility to make thumbnails in the PNG format, with an alpha channel. This means that the thumbnail will have the same transparent areas as the original image.
On macOS you can also create a thumbnail of your movie files (like .mov, .mp4 etc.). The plug-in will create a thumbnail of the first frame of the movie.
Check the type and availability of items
Before manipulating files and folders with the many functions Troi File Plug-in offers you, you can check their type and availability, thus avoiding possible errors. The function TrFile_GetTypeOfItem provides an easy way to see if a path points to a folder, file or package folder (macOS). It can also indicate if a file is an alias file (or shortcut on Windows). To get the extension of a file use the TrFile_GetExtension function. The TrFile_Exists function will tell you if a file or folder you want to manipulate exists and the TrFile_IsFree function will let you know whether a file is in exclusive use by a different application or locked.
Exchange two files on disk
The plug-in’s ExchangeFiles function lets you quickly exchange two files that are stored on your disk. Very handy when updating existing files: work in a draft version first and when your draft is ready, replace the original file with just one script step. Also works when the files are located on different disks!
Create and resolve alias files
The plug-in’s CreateAlias function lets you create an alias file (or shortcut) from a source file or source folder. Resolving an alias file is easy with the ResolveAlias function. It returns the path to the destination of the alias file. If the alias is broken you can use the switch “-ReturnLastKnownPath” to get the last path the alias pointed to.
Zip and unzip files and folders
The plug-in’s CreateZip function lets you create a compressed archive of files and folders. Expanding ZIP files is easy with the UnZip function. You can specify the folder where the unzipped items need to be placed. The GetZipInfo function lists the items (files and folders) inside a ZIP file. This allows you to check what’s inside a ZIP file before you unzip it, so no unwanted overwriting of existing items occurs.
Powerful listing of folders and searching
Troi File Plug-in lets you recursively list the contents of a folder with one call to the plug-in. The plug-in will return a list of all files and/or folders and all the subfolders contained in the folder you are listing. This makes processing all the items in a deeply nested folder very easy, like for example listing all the Word documents contained in a folder.
On macOS you can optionally even list the internal contents of a package folder (like for example a macOS app).
Insert text into a file
Troi File Plug-in can substitute text in and append text to an external (text) file. You can search for a text string in a file and substitute it with a different text. You can substitute text and have the result saved in the same file! And you can use replace strings of up to 150,000,000 characters, making it possible to substitute tags with much longer replacements in template files. With the function TrFile_InsertContents, you can insert text into a file at a specified position.
Get file icons
The GetIcon function gets the icon of a file. It can create icons in sizes varying from 16×16 to 1024×1024 pixels and with double resolution, which is great for retina screens.
Drag your files and mails into FileMaker
Troi File Plug-in allows you to drag one or more files or folders on a FileMaker window or even a drop zone. The paths of the dropped items can then be handled by a triggered script, for example to put them in a container field. You can specify up to three drag destination rectangles (even on the same window), and each drag can trigger a different script. The plug-in has a Bring to Front script step that will bring FileMaker Pro back in front of other applications when you use the Drag and Drop functionality to drag from another application that is in front.
The drag and drop functionality includes Mail Drop (macOS only). You can drag one or more emails from the Mail.app to the FileMaker window. Add the switch “-AllowMailDrops” to the switches parameter of TrFile_DragAndDrop function to enable this extra functionality. The DragAndDrop example file reflects the Mail Drop functionality with an extensive example demonstrating the handling of single and multiple Mail Drops.
Command your shell
With the TrFile_ExecuteShell function you can execute a command in the command shell of the operating system. On macOS this will be a command executed in the UNIX Bash shell, and on Windows this is the Windows CMD shell.
Troi File Plug-in can be used in a lot of ways. Its 82 functions and 39 script steps give you a universal tool that can be used in a lot of databases. Below are a few suggestions on how Troi File Plug-in can be useful:
- list the contents of a folder and process newly added files. TIP: with Troi Activator Plug-in you can trigger a script when a file or folder is added to a folder you monitor
- check the integrity of files on disk with a hash or get code sign info from applications
- update solutions, by moving (database) files into place
- read and write custom formatted files, for example from legacy systems
- catalogue complete projects, including pictures
- manage images, movies and other files
- launch files with their appropriate application directly from FileMaker
The possibilities are only limited by your imagination!
Try Troi File Plug-in before you buy
You are free and invited to test the plug-in before you pay. Troi File Plug-in is fully functional in demo mode, it will only stop working after 2 hours of testing. Download your copy here.
Troi File Plug-in 12
Troi File Plug-in 12 is a major update that adds compatibility with FileMaker 19 and a long list of new functionality and improvements. We added a new TrFile_GetExtension function which returns the extension of a file in a filepath. Also new is a Bring To Front script step and a TrFile_BringToFront function: if the FileMaker Pro application is behind other applications, this step or function will bring FileMaker Pro in front of other applications. Use this for example when you use the Drag and Drop functionality of the plug-in to drag from another application that is in front. In the trigger script you can decide if and when you want to bring FileMaker to the front. This functionality is also available as a new switch “-BringToFront” in the TrFile_DragAndDrop function. This will always bring the FileMaker app to the front just before the drag triggerscript is triggered.
The TrFile_CreateZIP function has a new “-DontAddEnclosingFolder” switch. When you add this switch the top folder will not be added to the ZIP file, only the contents of the top folder. The CreateZip function will now also automatically add a .zip extension to the destination ZIP filename when you didn’t specify that.
We added a new option to the Create File script step and TrFile_CreateFile function to automatically create any new (sub)folders in the specified path if they don’t exist.
The TrFile_DeleteFile function has a new switch to forcefully delete a file if it is busy (open).
In version 12 each function or script step with a path parameter will now also work with implicit FileMaker styled paths (without prepending “filemac:” or “filewin:”): any path starting with a slash will be parsed as a FileMaker styled path (of the platform on which FileMaker Pro is running). You can also still use all the other path formats. The TrFile_Search function can now optionally return a list of FileMaker formatted fully qualified paths.
Furthermore we improved the Get and Set Metadata functionality of the plug-in, among other things we added support for getting metadata from TIFF images.
And finally we fixed problems and improved the working of several other functions. Please see the Version history below for a complete list of changes and improvements in this and earlier versions.
Troi File Plug-in 12.0 (for FileMaker 15 to 19) (May 20, 2020)
- Tested and made compatible with Claris FileMaker Pro 19 and FileMaker Pro 18.0.3.
- Tested and improved compatibility with Windows 10 up to version 1909 (the November 2019 Update).
- Tested and improved compatibility with macOS Catalina up to version 10.15.4.
New script steps and functions
- Added new TrFile_GetExtension function, which returns the extension of a file in a filepath. If the filename has no extension an empty string is returned.
- Added new Bring To Front script step: if the FileMaker Pro application is behind other applications, this step will bring FileMaker Pro in front of other applications. Use this for example when you use the Add Drag and Drop Handler functionality to drag from another application that is in front. In the trigger script you can decide if and when you want to bring FileMaker to the front.
- Added new TrFile_BringToFront function: if the FileMaker Pro application is behind other applications, this function will bring FileMaker Pro in front of other applications. Use this for example when you use the TrFile_DragAndDrop function to drag from another application that is in front.
- Added new switch “-DontAddEnclosingFolder” to the TrFile_CreateZIP function. When you add this switch the top folder will not be added to the ZIP file, only the contents of the top folder.
- Improved the TrFile_CreateZIP function. When the destination ZIP filename does not have an extension the plug-in now adds the .zip extension.
- Added new option to the Create File script step: “Create Folders: off/on”. When this option is set to “on” the plug-in creates new (sub)folders if they don’t exist in the specified path.
- Improved the TrFile_CreateFile function: added a new switch “-CreateFolders”. When using this switch the plug-in creates new (sub)folders if they don’t exist in the specified path.
- Added new switch “-FileMakerPathFormat” to the TrFile_Search function: when used the result will be a list of FileMaker formatted fully qualified paths. On macOS this will be for example “/macHD/users/ad/text.txt”. On Windows this will be like “/C:/users/ad/text.txt”.
- (macOS) Added a new switch “-ForceDelete” to the TrFile_DeleteFile function, which forcefully deletes a file if it is busy (open). This solves a problem where in some cases the function could return error code $$-47 (fBsyErr). Please use this new switch with care.
- Improved compatiblity with implicit FileMaker styled paths, like for example “/MacHD/folder/file.txt” and “/C:/directory/file.txt”. Each function or step with a path parameter can now also be given a this FileMaker styled path (without prepending “filemac:” or “filewin:”. Any path starting with a slash will be parsed as a FileMaker styled path (of the platform on which FileMaker Pro is running).
You can still use all the other path formats like “MacHD:folder:file.txt” and “filemac:/MacHD/fold/file.txt” on macOS and “C:\folder\letter.txt” and “filewin:/C:/dir/file.txt” on Windows.
- (macOS) Improved and prepared the Add DragAndDrop Handler script step and the TrFile_DragAndDrop function for FileMaker Pro 19.
- Added new switch “-BringToFront” to the TrFile_DragAndDrop function. This will always bring the FileMaker app to the front just before the drag triggerscript is triggered.
Improved metadata features
- Improved the TrFile_GetMetaData function: added support for TIFF images when using the switches “-GetIPTC”, “-GetEXIF” and “-GetXMP”.
- Improved the TrFile_GetMetaData function with the switch “-GetGPS”. The plug-in now returns the GPSVersionID tag formatted as readable text, for example “188.8.131.52”.
- Improved the TrFile_SetMetaData function with the switch “-SetEXIF”. You can now write the GPSVersionID tag if you format it as readable version string, for example “184.108.40.206”.
- Improved the TrFile_SetMetaData function, it now has a more robust error checking, especially when using the switch “-SetEXIF”.
- Improved the SetExif.fmp12 example file, it now shows how to set a different GPS location in the EXIF of an image.
- Improved the IPTC_XMP_Metadata.fmp12 example file, it now is much more modular and uses variables where possible, making it easier to copy it into your solution.
Other changes and improvements
- IMPORTANT The minimum supported FileMaker version is now FileMaker Pro 15. Also the minimum supported macOS version is now OS X 10.11 (El Capitan). You can keep using v11.0.2 for older versions of FileMaker Pro or Mac OS X.
- (macOS) Fixed a bug in the Create Folder script step and the TrFile_CreateFolder function: the plug-in can now create folders with a slash in the folder name and no longer returns error code $$-37 (bdNameErr) indicating a bad file name.
- (macOS) Fixed a bug in the Add DragAndDrop Handler script step and the TrFile_DragAndDrop function where it could return error $$-5600 when running as a runtime app.
- (Windows) Fixed a problem where adding the switch “-ScrollDropZone” in the Add DragAndDrop Handler script step and the TrFile_DragAndDrop function would not work for multiple drag zones.
- Updated the DragAndDrop.fmp12 example: added switch “-ScrollDropZone” in some scripts, so the dropzone will scroll with the window.
- (macOS) Improved the Create Zip script step and the TrFile_CreateZIP function: when creating a zip file in a destination folder where you have no write access the plug-in now returns error code $$-5000 (afpAccessDenied) instead of the (unspecific) error code $$15.
- (macOS) Improved the UnZip script step and the TrFile_UnZIP function: when unzipping to a destination folder where you have no write access the plug-in now returns error code $$-5000 (afpAccessDenied) instead of the (unspecific) error code $$15.
- (Windows) Improved the TrFile_Search function: using a FileMaker style path (i.e. starting with: “filewin:”) for the search directory now works better.
- (Windows) Fixed a bug in the TrFile_Search function, where in some cases not all matching results would be returned.
- Fixed a possible memory leak in the TrFile_SetMovieMetaData function.
- Fixed a bug in the Set MetaData of Image File script step and the TrFile_SetMetaData function. When setting the metadata on an image on a remote (SMB) disk an error code $$-1401 could be returned. This bug is also fixed for other related functionality.
- Fixed a possible crash when getting EXIF metadata of an incorrect image in the TrFile_GetMetaData function.
- Fixed a bug in the TrFile_GetMetaData function with the switch “-GetXMP”. The plug-in now properly returns large XMP metadata (more than 64000 bytes) of JPEG images stored in a container field.
- Fixed a bug in the TrFile_GetMetaData function with the switch “-GetXMP”: fixed a potential crash when getting the XMP metadata of an incorrect movie file.
- (macOS Catalina) Fixed a bug in the Open Folder script step, the Launch File script step and the TrFile_Launch function: on macOS 10.15 (Catalina) an error code $$-10100 could be returned when opening an item located on a AFP mounted disk.
- (macOS Catalina) Fixed a bug in the Reveal File script step, the Reveal Folder script step and the TrFile_Reveal function, where the incorrect item could be revealed for items located on AFP mounted disks.
- Improved and modernized the DragAndDrop.fmp12 file. Added new layout and script which demonstrates the BringToFront functionality.
- Improved multiple example files, they no longer refer to installing plug-ins into the Extensions folder inside the FileMaker folder.
- Small cosmetic improvement of the Regifunc.fmp12 example.
Troi File Plug-in 11.0.2 (for FileMaker 14 to 18) (September 10, 2019)
- Tested and improved the compatibility with the upcoming macOS 10.15 (Catalina).
- (macOS Catalina) Fixed a bug in the Show Select Folder Dialog script step and the TrFile_SelectFolderDialog function where selecting the top folder of a disk would result in the diskname with two colons at the end (instead of one), for example “macHD::”.
- (Windows) Fixed a bug in the TrFile_GetContents function, where an error code $$-4212 (kErrReadBytesDiff) could be returned when getting the contents of an empty file.
- Made small improvements to the DataIn.fmp12 example file.
- Updated the text on the layout of the DragAndDrop.fmp12 example, to better show the “-ScrollDropZone” switch.
Troi File Plug-in 11.0.1 (for FileMaker 14 to 18) (June 13, 2019)
- (Windows) Fixed a bug in the Create Folder script step and TrFile_CreateFolder function: the plug-in no longer returns error $$-43 (fnfErr) when creating nested subfolders on a mounted shared disk.
- (macOS) Fixed a problem with creating thumbnails from PDFs with the Create Thumbnail script step or the TrFile_CreateThumbnail function: the plug-in no longer returns error code $$-2003 instead of the thumbnail.
- (macOS) Fixed a possible memory leak when using the drag and drop functionality.
- (macOS) Fixed a bug in the Add DragAndDrop Handler script step and the TrFile_DragAndDrop function where it could return error $$-5600 when running FileMaker Pro 18.
- (Windows) Fixed a bug in the Add DragAndDrop Handler script step and the TrFile_DragAndDrop function when running FileMaker Pro 14, which would cause the script not to be triggered.
- Updated the DragAndDrop.fmp12 example to check for the minimum plug-in version 11.0.1.
Troi File Plug-in 11.0 (for FileMaker 14 to 18) (May 21, 2019)
- Tested and made compatible with FileMaker Pro 18 and FileMaker Pro 17.0.6.
- Added new TrFile_ExportToFile function, which can save container data to disk. This function can also be used on FileMaker Server.
- Added new TrFile_IsFree function, which can be used to determine if a file is in use by a different application (or locked).
- (macOS) Added new Set MetaData of Movie script step, which can set or replace metadata of movie files (like .mov and .mp4). It can add and change metadata like title, GPS and creation date. Note: this works only on macOS.
- (macOS) Added new TrFile_SetMovieMetaData function, which can add (or replace) metadata to movie files (like .mov and .mp4). It can add and change metadata like title, GPS and creation data. Note: this is implemented only on macOS.
- (macOS) Improved TrFile_CreateThumbnail function and the Create Thumbnail script step: you can now create thumbnails of movie files (like mov, mp4 etc). The plug-in creates a thumbnail of the first frame of the movie.
- (macOS) Prepared the plug-in for notarization: the plug-in can now be added to a runtime, to create a hardened FileMaker runtime app which can be notarized by Apple. Notarization gives users more confidence, as the runtime has been checked by Apple for malicious components.
- (Windows) Improved the TrFile_ExecuteShell function and the Execute Shell script step. If you use the switch “-Encoding=UTF8” the plug-in now indicates invalid UTF-8 characters with the string <INVALID UTF8>.
- Improved the ExecuteShell.fmp12 example file, you can now specify the encoding of the result of the command.
Other changes and improvements
- IMPORTANT (macOS only) The minimum supported FileMaker version is now FileMaker Pro 14. Also the minimum supported Mac OS version is now OS X 10.10 (Yosemite). You can keep using v10.2 for older versions of FileMaker Pro or Mac OS X.
- (macOS) The plug-in no longer has the 32-bit code included.
- Improved the initialization when installing the plug-in with the FileMaker Pro “Install Plug-In File” script step.
- Updated the EasyInstallTroiPlugins.fmp12 file, it can show additional error information from Get(LastExternalErrorDetail) when running on FileMaker Pro 18. The EasyInstallTroiPlugins.fmp12 file can also run a test registration script for a plug-in after you have installed it on FileMaker Server.
- Updated the example files for FileMaker Pro Advanced 18.
- Made small corrections to the user guide.
- Fixed a bug in the TrFile_CreateThumbnail function where creating a thumbnail from a RAW file could result in a crash when stopping FileMaker Pro if other plug-ins were also installed.
- Fixed a bug in the TrFile_CreateThumbnail function where creating a thumbnail from a RAW file could result in a hang when stopping FileMaker Pro.
- Fixed a bug in the TrFile_GetMetaData function with the switch “-GetEXIF” where in some cases getting EXIF of a RAW file could result in error code $$-4259.
- (Windows) Fixed a bug in the TrFile_ExecuteShell function and the “Execute Shell” script step, where sections of the result text would not be included.
- (Windows) Fixed a bug in the Launch Application and the TrFile_Launch function which could fail and return an error code $$-1 in some cases when running FileMaker Pro in Windows Server 2012. This bug could also manifest itself with the Reveal functionality of the plug-in.
- (macOS) Fixed a bug in the TrFile_ListFolder function and the “-Recursive” switch, where in some cases the function could randomly fail and return error code $$-120.
- Modernized the Regifunc.fmp12 file, it now demonstrates the cross-platform plug-in registration process.
Version 10.2 (for FileMaker 13 to 17) (March 4, 2019)
- Tested and made compatible with FileMaker Pro 17.0.4.
- (Windows) Fixed a problem where the plug-in would not be loaded on Windows 7.
- (Windows; 32-bit) Modernized the code when using the TrFile_GetMetaData function with the switches “-GetImageDescription” and “-GetMovieDescription”. This functionality now works for most image and movie formats without QuickTime installed.
- (macOS) Improved TrFile_CreateThumbnail function and the “Create Thumbnail” script step: you can now create thumbnails of Photoshop files (with extension .psd).
- Fixed a problem in the TrFile_CreateThumbnail function and the “Create Thumbnail” script step: the plug-in no longer returns error code $$-8994 (noThumbnailFoundErr) instead of the expected error code $$-2003 (cantFindHandler) when no thumbnail could be created.
- Updated the code base, the plug-in now uses more modern C++ libraries.
- (macOS) Removed old code dealing with resources.
- Updated the EasyInstallTroiPlugins.fmp12 file, it can now run a test registration script for a plug-in after you have installed it on FileMaker Server.
- Made small corrections to the user guide.
Version 10.1 (for FileMaker 13 to 17) (January 7, 2019)
- Tested and made compatible with FileMaker Pro 17.0.3.
- Added support for the Windows XP EXIF tags. These are the tags XPTitle, XPComment, XPAuthor, XPKeywords and XPSubject (tags 40091 to 40095):
- Improved the TrFile_GetMetaData function with the switch “-GetEXIF”. The plug-in now returns the WindowsXP EXIF tags correctly.
- Improved the TrFile_SetMetaData function with the switch “-SetEXIF”. You can now write EXIF data with WindowsXP EXIF tags.
- Improved support for EXIF with UTF-8 text:
- Improved the TrFile_GetMetaData function with the switch “-GetEXIF”. You can now get EXIF with UTF-8 encoded strings using the switch “-SourceUTF8Charset”.
- Improved the TrFile_SetMetaData function with the switch “-SetEXIF”. You can now write EXIF with encoded UTF-8 strings by adding the switch “-UTF8Charset”.
- Improved the TrFile_SetMetaData function: it no longer creates an empty destination file when specifying invalid switches.
- Improved the GetStructure.fmp12 file: it now shows a dialog when trying the TrFile_GetFileStructure function with a (old!) QuickTime movie that has its MOOV atom in a resource fork. Note that the TrFile_GetFileStructure currently does not support MOOV atom in a resource fork.
- Improved the DragAndDrop.fmp12 file.
- Improved the All File Examples.fmp12 file.
Version 10.0.1 (for FileMaker 13 to 17) (September 18, 2018)
- Fixed a bug with registering the plug-in on FileMaker Server.
Version 10.0 (for FileMaker 13 to 17) (May 15, 2018)
- Tested and made compatible with FileMaker Pro 17.
- Rewrote and modernized the low level file handling code of the plug-in.
- Added new Exchange Files script step, which can (quickly) exchange two files on disk. With the checkbox “Allow different volumes” you can even exchange files on different disks. Note that this may take more time.
- Added new TrFile_ExchangeFiles function, which can (quickly) exchange two files on disk. When you add the switch “-AllowDifferentVolumes” the plug-in also can exchange files on different disks. Note that this may take more time.
- Added new TrFile_GetCodeSignInfo function, which returns code sign info of signed files (like applications and plug-ins).
- Added new TrFile_GetFileStructure function, which returns the structure of a movie file. It can analyze a movie file (.mov) and return a list of all movie boxes (formerly known as atoms) in the movie. The movie boxes are indented to visualize the tree structure of the boxes. The result can be formatted as XML or as a more readable list of movie boxes. It can also return the structure of a ISOBMFF (ISO base media file format), for example MP4 or HEIC.
- Added new switch “-AllowDifferentVolumes” to the TrFile_MoveFile function, which allows the move of the file between different volumes (disks). Note that moving a big file across disks may take more time.
- The plug-in now indicates if an external script step is compatible with a product. The step is shown in grey if it is incompatible for that product (for example for iOS) in the script editing pane (center) and the script steps pane (right).
- Added new switch “-AddFolderSuffix” to the TrFile_ListFolder function: this will add a trailing slash to folders in the result, making them recognizable as folders.
- Added a new switch to the TrFile_DragAndDrop function: “-ScrollDropZone” to help with the scrolling behavior when you use a drop zone for the drag destination. When you add the switch the position of the dropzone will scroll too when scrolling the FileMaker window.
This is also implemented in the script step “Add DragAndDrop Handler” with the checkbox “Scroll the drop zone”.
Improved metadata support
- Improved the TrFile_SetMetaData function with the switch “-SetEXIF”. The plug-in is now compliant with EXIF v2.3.1. It writes tags introduced in EXIF version 2.3.1, like LensMake, LensModel and LensSerialNumber and timezone tags. The plug-in also handles these tags: ambient temperature, humidity, pressure, waterdepth, acceleration, sensitivity type, standard output sensitivity, recommended exposure index. Finally the plug-in handles the GPS tag GPSHPositioningError, which indicates horizontal positioning errors in meters.
- Improved the TrFile_SetMetaData function with the switch “-SetEXIF”. The code has been rewritten and the plug-in now writes EXIF data that is better readable by PHP.
- Added more tags to be written when using the TrFile_SetMetaData function and the switch “-SetEXIF”: the plug-in now correctly writes the tags: WhitePoint and PrimaryChromaticities. It now also writes tags which are not part of the EXIF specification, but may exist in the EXIF data in some images. This can be tags like ProcessingSoftware or DocumentName.
- (macOS) Added initial support for HEIC (High Efficiency Image File Format) image files: the TrFile_GetMetaData function with the switch “-GetImageDescription” now returns a description.
Other improvements and changes
- Improved handling of files located on remote volumes like WebDAV.
- Fixed a problem with the TrFile_Exists function, where certain incorrect paths with double colons would result into a 1 as result.
- Improved the TrFile_DragAndDrop function so that it works with FileMaker Pro 17.
- (macOS 10.13.4) Fixed a problem with the TrFile_DragAndDrop function when using the switch “-AllowMailDrops”, where an incorrect path to the temporary email file would be returned. The plug-in now returns the correct path. In some cases the Mail app does not create the temporary email file, the plug-in then returns the complete drag information, which can be parsed to get the correct location of the email.
- Added example script to the SelectFile.fmp12 example file which demonstrates how to use the switch “-HideInvisibles”.
- (macOS) The minimum supported Mac OS X version is now 10.8.
Version 9.1 (for FileMaker 12 to 16) (February 20, 2018)
- Added new TrFile_ResolveAlias function, which will resolve an alias file (on macOS) or shortcut (on Windows). It returns the path to the destination of the alias file. If the alias is broken you can use the switch “-ReturnLastKnownPath” to get the last path the alias pointed to.
- Added extra switch “-AddAliasInfo” to the TrFile_GetTypeOfItem function. If an item is an alias file (or shortcut on Windows) the result will be “file (alias)”.
- You can now add the “-DontResolveAlias” switch to the TrFile_SelectFileDialog function. When you select an alias/shortcut the result is the path to the alias itself (and not the destination path where the alias points to).
- (Windows) Added code signing to the plug-in for Windows (On macOS code signing was already added in version 8.0).
New functionality for movie metadata
- Added new functionality to the TrFile_GetMetaData function: when using the switch “-GetMovieMetadata” the plug-in now returns all metadata embedded in QuickTime movies (with extension .mov) and all variants of MP4 movies. This returns a list of metadata in the movie, returning for example Artist, Creation date and Description.
- Added new functionality to the TrFile_GetMetaData function: when using the switch “-GetMovieGPS” the plug-in now returns the GPS location data of the movie. With an extra -Format switch you can specify how the location is returned:
Format switch Description Example -Format=Decimal Decimal coordinates (default) +52.0907 +5.1213 +112.000 -Format=DegMinSecs Latitude, longitude (in degrees,
minutes and seconds) and height (in meters)
52° 05′ 26.5″ N, 5° 07′ 16.7″ E, 112m -Format=ISO6709 Formatted according to ISO 6709 52.0907+5.1213+112.000/
- Added new switch “-GetMovieCreationDate” to the TrFile_GetMetaData function: when using this switch the plug-in returns the creation date (including time + timezone) of the movie (if present as metadata). This might return for example: “2018-01-31T16:29:07+0200”
- Added new functionality to the TrFile_GetMetaData function: when using the switch “-GetXMP” the plug-in now can read embedded XMP metadata in movies. The plug-in supports reading XMP metadata for QuickTime movies (with extension .mov) and all variants of MP4 movies.
- Improved the example file ManageMedia.fmp12, it now demonstrates how to retrieve metadata from movies (including XMP).
- Improved the TrFile_GetMetadata function. Added new switch “-SourceUTF8CharSet”, to be used with the switch “-GetIPTC”. The IPTC metadata of the source image file will forced to be read as UTF-8 encoded.
- Updated the FileManipulation.fmp12 example file to show the TrFile_ResolveAlias function.
- (Mac OS) Fixed a possible bug in the TrFile_Substitute function, when substituting in place: there are no longer spurious extra characters at the end of the new file when the replace string is shorter than the search string.
- In the TrFile_Substitute function, when the search string is at the end of the source file the destination now has the correct end character.
- (Mac OS) Fixed a bug in the TrFile_Substitute function on macOS 10.13 (High Sierra): when you substitute in place this no longer gives an $$-50 error code as result.
- (Mac OS) Improved the reliability of the TrFile_SetMetadata and TrFile_InsertContents functions on macOS 10.13 (High Sierra).
- (Mac OS) Fixed a possible memory leak in the TrFile_GetFolderSize function.
- (Mac OS) Fixed a compilation problem with code signing and extended attributes in macOS 10.12 (Sierra).
Version 9.0.1 (for FileMaker 12 to 16) (June 19, 2017)
- (Windows) Fixed a bug with the TrFile_DragAndDrop function which prevented drag and drop when running FileMaker Pro 16.
- Improved the DragAndDrop.fmp12 example file: the calculation for the bounds of the three drag zones are improved when running FileMaker Pro 16.
Version 9.0 (for FileMaker 12 to 16) (May 9, 2017)
- Tested and made compatible with FileMaker Pro 16.
- Added new TrFile_GetFolderSize function, which can get the total size (in bytes) of a folder.
- Added new TrFile_AppendContentsToFile function, which can append text to the end of a specified (text) file.
- Added new TrFile_SetContentsOfFile function, which can set the contents of a specified (text) file.
- (Mac OS) Added new TrFile_SetFinderComment function, which can set the text of a Finder comment (also called Spotlight comment) of a specified file or folder. You can see the comment with the Get Info command in the Finder.
- Renamed the TrFile_MetaData function to TrFile_GetMetaData, as to better reflect its functionality.
- Added possibility to use a container as the source parameter for the TrFile_GetMetadata function.
- Improved the TrFile_DragAndDrop function: you can now specify three different drop zones with the TrFile_DragAndDrop function.
Extra features when running FileMaker Pro 16
- The File Plug-in adds multiple script steps when running FileMaker Pro 16.
You can select these script steps in the script steps pane in Script Workspace, or you can begin typing the script step name, then choose the script step from the list that appears.
The script steps significantly expand the possible actions you can perform with FileMaker Pro. The following 36 script steps are added:
- Append to File
- Get File Contents with Dialog
- Enable/Disable Troi File Plug-in
- Copy File
- Copy Folder
- Create Alias
- Create File
- Create Folder
- Create Thumbnail
- Create Zip
- Delete File
- Delete Folder
- Add DragAndDrop Handler
- Execute Shell
- Insert in File
- Launch File
- Launch Application
- Mount Disk
- Move File
- Move Folder
- Open Folder
- Reveal File
- Reveal Folder
- Show Save File Dialog
- Show Select File Dialog
- Show Select Folder Dialog
- Set Contents of File
- Set File Attribute
- Set Finder Comment
- Set MetaData of Image File
- Set Timestamp Created
- Set Timestamp Modified
- Stop DragAndDrop Handlers
- Substitute In File
- Unmount Disk
NOTE Only steps that perform an action have been added as a script step. Functions that just return information (like for example TrFile_GetFileSize) are only available as an external function.
- Added new example file CreateFile-for-FMP16.fmp12, which demonstrates how to use the new external script steps of FileMaker Pro 16.
- Added support for online help for the functions and script steps of the plug-in. You can now easily get online help from the Troi website, by clicking the Help button (the small question mark button) next to the function description in the functions pane or the script step description in the script steps pane.
- (Mac OS X) Fixed a problem with the TrFile_DragAndDrop function when dragging mail: email messages with a semicolon (“;”) in the subject of the email are now handled properly.
- Several bug fixes and further improvements.
- Updated the Attribute.fmp12 example file.
- Made various minor changes to the example files to better work with FileMaker Pro 16.
- Updated the code by adding improved namespace handling to make the plug-in more robust.
Older release notes
For older release notes please see here.
single user, 10-user and 25-user license: these are meant for using the plug-in client-side, on FileMaker Pro and FileMaker Pro Advanced, including with files hosted by FileMaker Server. You need a license for every user that makes calls to the plug-in’s functions.
developer license: this license is meant for FileMaker developers, who want to include the plug-in with their database(s) or custom app(s) and distribute it to their end-users. Each of your end-users may use the plug-in with up to 25 users (contact us if any of your customers has more than 25 users). The number of organizations you distribute the plug-in to and the number of databases or apps you distribute it with are not limited. Works on FileMaker Pro and FileMaker Pro Advanced, including with files hosted by FileMaker Server.
Go to the developer license page for more info.
server/web license: this license registers the plug-in for use on FileMaker Server and FileMaker Server Advanced. It does not provide any client-side functionality. You only need this license if you want to use the plug-in in server-side scripts and in web published databases. It has no user limit.
Go to the server-side plug-ins page for more info.
All licenses work both on macOS and on Windows.
|single user license||US $ 99 per user|
|10-user license||US $ 449|
|25-user license||US $ 749|
|developer license||US $ 749|
|server/web license||US $ 449|
If you have a license for a previous version, you can buy an upgrade for version 12. If you bought a license on or after May 22, 2019, the upgrade to version 12 is FREE! Note: eligible users will be sent a new 12.0 registration. Contact us if you have not received yours.
If you bought a license before May 22, 2019, you will need to buy an upgrade to use the 12.0 version:
|single user license upgrade||US $ 59 per user|
|10-user license upgrade||US $ 259|
|25-user license upgrade||US $ 389|
|developer license upgrade||US $ 389|
|server/web license upgrade||US $ 259|
Below are a few things our users had to say about Troi File Plug-in:
“We have used the Troi Plug-In for years and it has worked flawlessly with our Filemaker Pro 11. I have had to reach out several times to purchase a new product or when I required a download for a new computer. I always receive a response within the hour and Troi is amazing in support. Thank you.”
Elaine Phares, Core Hospitality Advisors
“I bought Troi File Plug-in a week ago. Thus far, the plugin has worked absolutely flawlessly! I was using a free plug-in for (if exist) file checks and it occasionally returned incorrect results. Troi has been 100% since the first script run. Seriously, seriously good, clean software! Worth EVERY penny! I have yet to see any malloc/free issues and I’ve not needed a single reboot (whereas the free plug-in required more hands-on admin). The Troi plugin is simply miles and away superior.”
John Czlonka – CTO & Lead Software Architect, Marcon Pipelines, Inc., Calgary, Canada
“I have been using the file plugin for a long time (10 + years) and it has been great. Very easy to use and powerful. Awesome work :)”
Steven Durow, Director of Data Analysis Department, Fargo Public Schools, Fargo ND, USA
“Your customer service is first-class, there are many companies that could learn a lot from you about how to help and advise their clients. I really appreciate it.”
David Fox, WhatHat Ltd.
“I like to thank you for an excellent plugin that has made many of my solutions two steps better than I ever could do in pure FileMaker.”
Johan Hedman, certified FileMaker developer at PositionEtt AB, Sweden
“I really have to say, that Troi File Plug-in is a fantastic extension for Filemaker. Troi opens a wide range of possibilities to improve our database and helps us a lot, to make the photo-handling easier.”
Daniel Stöckli, Switzerland
“We have used a single version of the original Troi File classic plug-in for a several years, converting last week to a 10 user of the v4 version for Filemaker 8+.
I was amazed how quick and easy it was to convert our code, as we use the Troi File functionality in about 40 instances across about 15 scripts.
You can see the result at www.recruiting.co.nz
Thank you for developing and supporting Troi File so professionally, in the future I’m sure we will use more of your products.”
Paul Royse, www.recruiting.co.nz
“I think this is a fantastic product, it does what it says and I am overwhelmed by the functionality that is offered.”
Peter Cross, read his complete review of Troi File Plug-in on the FMPug website
“I just want to let you know how highly I think of your product, Troi File. I’ve been developing a commercial solution that makes extensive use of the plug-in. It’s easy to use and most importantly, it’s rock solid. I’ve emailed you support questions from time to time and they are always answered with the information to solve the problem.
I cannot praise your product enough.”
Randy Lawrence, Absolute Advantage, Inc.
“Two weeks ago I had a very intensive project; full automation of a data conversion routine involving import and export of thousands of files. The Troi File Plug-In (and your very helpful and timely advice) made it all happen and get delivered on time.
In the past years of doing FileMaker development the most visionary and extensive projects I have been involved in have used Troi Plug-Ins as an essential component. Troi Plug-Ins give the ability to automagically harness system level processes; the simplest way of describing it is a “Wow” factor on the client’s side and a fundamentally elegant, straightforward, and fast scripting process from the developer’s perspective. They put a powerhouse of programming behind FileMaker’s ease of use.
Although I have used them for a wide range of functions I still feel I’ve only scratched the surface of Troi Plug-Ins possible applications. Much thanks for providing an essential tool to FileMaker developers.”
Beatrice Beaubien, i2eye, Toronto, Canada
“Thought you might be interested to hear about something we’ve done using Troi File and Troi Coding.” Read how Noam Sturmwind of Oak Bay Softrends, Inc. manages to update the local files on his client’s workstations by automatically downloading a new copy of the files when the workstation connects to the server. “Not only does this save us a lot of time in re-installing on each workstation, it also means that we don’t have to worry about local files becoming corrupted.”
Noam Sturmwind, Oak Bay Softrends, Inc., Vancouver, BC, Canada Read the whole story
Troi File to the rescue!
Read how Troi File Plug-in helped Heather McCue of OshVay Associates to migrate thousands of databases for a client and improve another client’s PDF reporting solution:
“Thank you Troi, we could not have managed without you!”
Heather McCue, OshVay Associates, Raleigh, NC Read the whole story
“Troi File Plug-in is a truly great product. I just wish I had looked into it properly when it first came out. If I had known just how powerful this tool was I’d have bought it for all my clients years ago.
Many thanks for a great product”
Peter Makin, Makin Rochard Ltd., United Kingdom
“Don’t leave home without Troi File Plug-in.”
Doug Rowe, Robyte Consulting
“Thank you for your new plug-in!
I bought it in about 10 seconds after I saw it can do exactly what I have been trying to do with Applescript unsuccessfully.
Using Filemaker to organize my cruise reviews, I was looking for a convenient way to export the html to a file.
I had been using the legacy Keyquencer to copy and paste information into a text-editor, and then save the file. To update my html files, this would take about 2 hours!
Your timing could not have been better. Now I can do the same task in about 2 seconds. Well worth the price of the plug-in!
Thanks for all your great work”.
Greg “Pepe” Giese, www.cruisingreview.com
“This plugin has become somewhat integral to many of the solutions I’ve worked on here. It’s a lifesaver!”
Tony Pottrell, Human Engineering
“At the recent suggestion of Dana Perry, I took a look at the Troi File Plug-in in the context of testing for the existence of the Adobe Acrobat Reader program (before launching PDF files from FileMaker). My study of the plug-in confirmed for me the great power of this tool for a variety of other tasks, including the automation of upgrades. I developed a routine with FileMaker and the Troi File Plug-in that I thought might interest other users.” Read more about it here.
Vince Lackner, The Lackner Group, Inc.
“As you might be aware, Brushfire for the Mac originally was written using AppleScript as the glue to pull the components together. When we ported Brushfire to the PC, we decided to use the Troi File plug-in. With Brushfire 1.5 we are using the Troi File plug-in on both Mac and PC versions. Not only was development with the plug-in smoother and easier than the AppleScript development, but the resulting code is more solid and robust. Since the switch to the Troi File plug-in our customer support telephone calls have dropped over 20%. I only wish we had started the project this way! Thank you for providing such an excellent tool.”
Russell Kohn, Chaparral Software & Consulting Services, Inc.
“I can’t thank you enough for this plug in. It is incredible what I have been able to do with FileMaker now that I have found your plug in. It’s simple to understand and I don’t think I could use FileMaker without it. I use it to create thousands of web pages from my FileMaker database very easily.”
Ben Levitan, USA
“Hello, Troi folks!
First, thanks for a great plugin in TroiFile! I’ve been using it to help power a great web site, www.topekamls.com (not available from 4:00 to 4:30 AM CST (GMT-7)). There we are using TroiFile, in concert with some calc fields in FMP, to detect whether a given house listing in our “available properties” FMP database actually has a picture on the hard drive or not, by using the TroiFile GetSize command – if it has a size, it’s got a picture! Saved our bacon for sure, as the database we’re importing the housing data from doesn’t have any kind of field that would otherwise let me know if any given record has an associated picture or not. Many thanks!
We’re also using TroiFile to write lasso-enabled template-based web sites for us. It writes from an FMP database which stores the raw HTML, and then substitues in customer-specific data right before TroiFile writes that html to a file out on the web server. We’ve got it writing about 500, 3-page websites every week for us, at a rate of about 1 complete site in 0.13 seconds on a rather modest AMD K6-2 450. Talk about profitability (and more time for our web designers to do other things)!”
John Krische, Krische Database Systems, Topeka, KS, USA
“From the US side of the pond, I offer my sincere thanks for the work you put into the File Plug-In. I didn’t realize the limitations that are inherent to FMP5 (Win) until I built my solution and found I couldn’t include badly needed features. After being directed to your web site by a fellow developer I downloaded and tested the evaluation copy. Shortly thereafter I purchased the Developer License.
What a Blessing the plug-in has been. It is everything that is advertised and then some. Thanks for an excellent piece of software. If my FMP solution is half as helpful and successful as your File Plug-in, I will be elated.”
Gary Hopps, Carthage, NY, USA
“I am having much success with your “Troi File” Plug-In- Thank You for making such a GREAT Product! Keep up the good work- Your products are an asset to the Filemaker community!”
James L. (Jay) Knight, Jr., Lead Developer Infotraxx Systems, Inc.
“The Troi File Plug-in is a very powerful addition to a FileMaker user’s armoury.”
Richard Dyce, MacUser UK
“This plug-in rocks! Keep up the great work”
Enrique Pardo, edesign graphic studio, Geneva, Switzerland
“I tried Troi’s file plug in and the demo file sucked in a folder full of JPEGs from my Mavica 91. All the plug in needs is a little sound file that makes the sound heard when emptying the contents of a container via a straw….slurrrrrpppp…”
Jack Rodgers, FileMaker developer
“I grabbed this plug-in, took it for a spin and it is totally the tool that I’ve needed for many a moon. AND it has many many other features that have my wheels turning – Thank you for this piece of Magick!”
Fritz Jung, The Witches’ Voice www.witchvox.com
“Thanks for the brilliant software. The Troi File and Text plug-ins keep making my work much easier.”
Eric Smith McGill University Montreal, Quebec, Canada
“FANTASTIC! and Congratulations! I love the File Plug-in and can’t wait to try out these new and exciting features! Great work! Especially the new folder functions: DeleteFolder, SelectFolder!”
Eric S. Pecoraro, Proxiva Corporation
“I started developing with the demo, and it is a joy to be able to do the things you can do with the File plug-in.”
Johan Edenvik, Database and Web Developer of Administrator Finansservice AB, Sweden
“I’am very happy with your plugins they’re better than FileMaker itself !!”
dipl. Ing. HTL Longin Ziegler, www.ismile.ch
We are still collecting more comments. If you have any remarks on the File Plug-in please send us your comments. Thanks!
Click images to enlarge
File Plug-in online help
Function and script step reference.
File Plug-in FAQ
See a list of Frequently Asked Questions about this plug-in.
Troi File Plug-in compared to file functions in FileMaker 18
Read a more detailed comparison between native file manipulation functions in FileMaker 18 and Troi File Plug-in.
Some ideas how Troi File Plug-in can help you manage images, movies and other files.
Get icons into FileMaker Pro
How to easily add the icons of files on your disk to your FileMaker app.
Selecting files in FileMaker
How to let a user select a file on disk, for example to get the contents into FileMaker.
Files and folders and FileMaker
Easily see which files or folders are in a folder.
File Plug-in conversion from FileMaker Pro 6
(Older) information on how to convert databases which use Troi File from FileMaker Pro 6 to FileMaker Pro 7 and later.
Manipulate any information on your disk directly from within FileMaker!