Skip to main content
Monthly Archives

June 2017

Drag a file into a container field and store only a reference

Adding content, such as an image, audio/video, PDF, or a file of any type, to a FileMaker Pro container field can be done very easily by dragging and dropping the file on the container. However, when you drag a file into a container field, FileMaker Pro always embeds* the data in the field. But what if you only want to store a reference to the file? In that case you can use Troi File Plug-in‘s Drag and Drop function.
Continue Reading

Troi File Plug-in Release notes 1998-2018

In this post you find the older release notes for Troi File Plug-in for FileMaker Pro.

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)
New functionality

  • 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)
New functionality

  • 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).

Other improvements

  • 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)
New functionality

  • 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
  • UnZip

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.

Version 8.6.1 (for FileMaker 12 to 15) (January 20, 2017)

  • (Windows) Improved the handling of certain ZIP files with the TrFile_UnZIP function: the plug-in will now implicitly create a folder when items in the ZIP file are in a subfolder, but that subfolder itself is not present.
  • Improved TrFile_MetaData( “-GetPDFDescription”): the plug-in can now better parse newer PDF versions, like PDF 1.7. And if there is a parsing error the plug-in returns the partial data.
  • (Mac OS X) Improved TrFile_MetaData( “-GetMovieDescription”): when a movie contains a Timecode track, the Timecode at the beginning and end of the movie and the Timecode of the current frame is returned again as part of the description.
  • Improved the multi-threading behavior of the TrFile_Metadata function. Multiple running scripts on FileMaker Server at the same time will now work better.
  • Improved the multi-threading behavior of the TrFile_Substitute function. Multiple running scripts on FileMaker Server at the same time will now work better.
  • Fixed a memory leak in the TrFile_Substitute function.
  • Fixed a bug in the TrFile_SetContents and TrFile_AppendContents functions where extra spurious characters could be written. This could happen when a text which contained combining unicode characters (for example a combining diaeresis, combining to ä) was written to a file using encoding: -Encoding=ASCII_Windows.
  • (Mac OS X) Improved stopping of the drag and drop handling and removed a potential memory leak.
  • (Mac OS X) Fixed a potential crash in the TrFile_DragAndDrop function, when restarting drag and drop multiple times.
  • (Windows) Added an exception handler, which handles (fatal) exceptions in the plug-in. It will save information on the exception to a dump file in the Temp directory. The dump file will be named similar to this:
    “Crashdump Troi File Plug-In v8.6.1-20161231-212603-5488-3164.dmp”.
    When running FileMaker Server the plug-in also writes the exception in the “Troi Plugin FMServer.log”:

    • 2017-01-01 21:26:03 [Troi File Plug-In] Exception raised. code = -1073741819
    • 2017-01-01 21:26:03 [Troi File Plug-In] Created crash dumpfile:
      C:\Users\user\AppData\Local\Temp\Crashdump Troi File Plug-In v8.6.1-20170101-212603.dmp
    • 2017-01-01 21:26:03 [Troi File Plug-In] **** FATAL ERROR: EXIT PROCESS ****
  • (Mac OS X) Improved export of symbols: now only the symbols that are required are exported by the plug-in.
  • Improved the internal registration of function calls of the plug-ins, making it more robust on more platforms.

Continue Reading