File plug-in logo

Troi File Plug-in is a very powerful tool for getting access to information outside the FileMaker database. Any files stored on the rest of the computer can be accessed through the functions of the plug‑in.

Buy NowDownload

Version 13.0

Works with

FileMaker Pro 16-19
FileMaker Server 16-19
Mac OS 10.13 -11.0
Windows 8-10

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!

84 functions and 39 script steps give you ample power

Troi File Plug-in adds 84 functions to FileMaker, giving you virtually limitless possibilities! Starting with FileMaker 16 plug-ins can also add script steps. In File Plug-in version 13 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?

Write metadata

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, movie and pdf 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.
Creating thumbnails of pdf files is possible on both macOS and Windows.

Get the contents of files into your database, including the text content of pdf files

The GetContents function of the plug-in will return the contents of a (text) file into your database. You can specify a starting position and the number of characters to get, to return only a part of the contents.
To get the text content of a pdf file use the TrFile_GetAsPlainText function.

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.

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_GetFileKind function will return a (localized) description of what kind of file this is. For example a .fmp12 file will return “FileMaker Document” and a .zip file will return “ZIP Archive”. 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).

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.

Suggested Uses

Troi File Plug-in can be used in a lot of ways. Its 84 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 13.0

Troi File Plug-in 13.0 is prepared for Apple Silicon: we made the plug-in a universal binary by adding code for the arm64 architecture of macOS. This version also has a long list of new functionality and improvements.
We added a new TrFile_GetAsPlainText function, which will return the contents of a PDF as plain text. On Windows we improved the Create Thumbnail script step and the TrFile_CreateThumbnail function: we added support for creating thumbnails from PDF files.
Also on Windows the ZIP functionality is improved: the plug-in now supports UTF-8 encoding of filenames when zipping and when unzipping. The UnZip functionality now supports the ZIP64 format and the plug-in has added support for unzipping files compressed with the Deflate64 method.
We added several switches to the TrFile_GetMetaData function, which return a single property of a movie (like width, height and rotation), making it easier to get these properties into separate fields in your database. We also added a new GetMovieMetadata.fmp12 example file to the download, which demonstrates which metadata (and properties) can be returned from a movie.
For other new functionality and a complete list of fixed problems and other improvements please see the Version history below.

Version history

Troi File Plug-in 13.0 (for FileMaker 16 to 19) (May 27, 2021)

Improved compatibility

  • Tested and made compatible with Claris FileMaker Pro 19, up to and including FileMaker Pro 19.2.2
  • (macOS) Prepared the plug-in for Apple Silicon: made the plug-in a universal binary by adding code for the arm64 architecture of macOS.
  • Tested and made compatible with macOS 11.4 (Big Sur).
  • Updated the plug-in to use the latest libraries or modern frameworks where possible.

Improved PDF support

  • Added new function TrFile_GetAsPlainText function, which will return the text contents of a PDF as plain text. Note that the returned results might be slightly different on macOS compared to Windows: long lines might be wrapped differently. Also this function is implemented for 64-bit FileMaker Pro only.
  • (Windows) Improved the Create Thumbnail script step and the TrFile_CreateThumbnail function: added support for creating thumbnails from PDF files. Note this is implemented for 64-bit FileMaker Pro only.

improved ZIP functionality and enhanced ZIP64 support

  • (Windows) Improved the Create Zip script step and the TrFile_CreateZIP function, the plug-in now supports UTF-8 encoding. If the filepath of files to zip contains higher Unicode characters, the filename will be automatically stored in UTF-8 format.
  • (Windows) Added new switch “-ForceUTF8Filenames” to the TrFile_CreateZIP function. When you add this switch all filenames in the ZIP file will be UTF-8 encoded. On macOS this is the default and the switch has no effect.
  • (Windows) Improved the UnZip script step and the TrFile_UnZIP function: ZIP files using the ZIP64 format extension can now be unzipped. The plug-in now has added support for unzipping files compressed with the Deflate64 method.
  • (Windows) Improved the UnZip script step and the TrFile_UnZIP function: the plug-in now automatically detects the encoding of UTF-8 encoded filenames.
  • (Windows) Improved the TrFile_UnZIP function: you can now add a -Encoding=x switch, like -Encoding=ASCII_Windows. The filenames in the ZIP file will be unzipped according to this switch. This is useful if the ZIP file was created using a non-standard filename encoding.
  • (Windows) Improved the TrFile_GetZipInfo function: you can now add a -Encoding=x switch, like -Encoding=ASCII_Windows. The filenames in the ZIP file will be decoded according to this switch. This is useful if the ZIP file was created using a non-standard filename encoding.
  • (Windows) Improved the Create Zip script step and the TrFile_CreateZIP function: error codes are now more accurate.
  • (Windows) Improved the Create Zip script step and the TrFile_CreateZIP function, shortcuts files (with extensions .lnk) are now also zipped into the ZIP file.

Improved movie support

  • Improved the movie handling in several functions: added support for internally compressed movies (which contain the ‘cmov’ movie box).
  • Improved the TrFile_GetFileStructure function: when using the -verbose switch it now returns more detailed movie structure information of a track, like the used video codec of a track or the clean aperture size.
  • Improved the TrFile_GetFileStructure function: it now correctly returns the pixel density metadata.

Improved movie metadata support

  • Improved the TrFile_GetMetaData function: added several switches, which return a single property of a movie:
    • -IsValidMovie, which returns 1 (true) if this is a valid movie or 0 (false) otherwise
    • -GetMovieWidth
    • -GetMovieHeight
    • -GetMovieRotation
    • -GetMovieFrameCount*
    • -GetMovieSoftware
    • -GetMovieYear

    * Note that it might take a while to calculate the frame count.

  • Improved the TrFile_GetMetaData function with the switch “-GetMovieDescription”: you can now add an extra switch “-AddFrameCount” if you also want the frame count of the movie. Note that it might take a while to calculate the frame count.
  • Improved the TrFile_GetMetaData function with the switch “-GetMovieDescription”:
    • (Windows) this switch now also works when running on a 64-bit version of Windows.
    • The result now also returns the rotation angle and track size (width and height).
    • The (general) size (width and height) now is the display size. So it reflects the rotation of the movie and also the clean aperture. It can return for example 980×1308 for a vertical rotated movie. This can be different from the internal track size, for example 1440×1080.
    • Also changed the order of the returned size of the movie, the function now returns the width first and then the height.
    • You can use the switch “-GetMovieDescriptionOldFormat” to get the original formatted result, i.e. height returned first and not reflecting the rotation of the movie.
  • Added new GetMovieMetadata.fmp12 example file to the download, which demonstrates which metadata (and properties) can be returned from a movie.

Improved iCloud Drive functionality (macOS)

  • Added switch “-AllowNonLocalCloudItems” to the TrFile_SelectFileDialog function. When used this will allow you to select iCloud files that are not downloaded to the local disk.
  • Added switch “-iCloudStatus” to the TrFile_GetFileAttribute function,
    The return values for iCloud Status can be:

    • not on iCloud: this file is not on iCloud (Drive), it is outside the iCloud Drive, it is just a local file on the disk.
    • on iCloud + local: the file is both on iCloud and on the local disk.
    • on iCloud only: the file is only on iCloud, it is not downloaded on the local disk.
    • on iCloud (updating): the file is on iCloud and on the local disk, but it is stale. A new copy is downloading to the local disk.

    NOTE If a file path does not exists, other values like error $$-43 (fnfErr; File not found) or $$-120 (dirNFErr; directory not found) may be returned.

Other changes and improvements

  • (macOS) Added support for using SMB styled paths as parameters for any file or folder path. You can use for example “smb://192.168.178.12/myShare/MainFolder/hello.txt” for a path to a text file.
  • (macOS) Added a new switch “-ForceDelete” to the TrFile_DeleteFolder function.
    When you use this switch in combination with the switch “-DeleteAllSubFoldersAndAllContents” the plug-in will forcefully delete any open files inside the folder and subfolders. This solves a problem where in some cases the function could return error code $$-47 (fBsyErr).
    Warning Please use this powerful switch with extra care, it might give problems with applications which have open files. Also it cannot be undone.
    Also note that with the “-forceDelete” switch the plug-in writes a warning to the system.log for each item it still cannot delete, with a description of the reason.
  • Improved the Create Thumbnail script step and the TrFile_CreateThumbnail function. Added support for creating thumbnails from a container field (or a variable with container data), for example a JPEG or PDF in a container.
  • Improved script triggering when using drag and drop: the plug-in now also triggers scripts where the filename parameter contains a period in the name and the (.fmp12) extension was not included (the FileMaker function “Get(Filename)” will not include the extension).For example if the filename parameter given is “Dropper1.0” the plug-in now adds the .fmp12 extension, resulting in “Dropper1.0.fmp12”.
  • IMPORTANT The minimum supported macOS version is now OS X 10.13 (High Sierra).

Bug fixes

  • Fixed a bug in the handling of TIFF files stored in containers.
  • (macOS) Fixed a bug in the TrFile_Search function when using the switch “-useSpotlight”, where in some cases ? would be returned.
  • Fixed a possible memory leak in the in the TrFile_Search function when using the switch “-useSpotlight”.

Troi File Plug-in 12.1 (for FileMaker 16 to 19) (January 26, 2021)

Improved compatibility

  • Tested and made compatible with Claris FileMaker Pro 19, up to and including FileMaker Pro 19.2.
  • Tested and made compatible with macOS 11.0 (Big Sur).
  • Tested and made compatible with Windows 10 version 20H2 (October 2020 Update) and Windows 10 version 2004 (May 2020 Update).

New function and functionality

  • Added new function TrFile_GetFileKind, which will return a (localized) description of what kind of file this is. For example a .fmp12 file will return “FileMaker Document” and a .zip file will return “ZIP Archive”. NOTE The description will be returned in the current system language. Also note that the resulting description can be slightly different depending on platform, installed applications and OS version.
  • Improved the TrFile_GetFileHash function: you can now use a container (or a variable with container data) as the source parameter, for example a JPEG in a container field.
  • Added switch “-AllowNonLocalCloudItems” to the TrFile_SelectFileDialog function. When used this will allow you to select files that are not downloaded to the local disk.
  • Improved the TrFile_GetMetaData function: added support for FujiFilm Raw image files (.raf) when using the switches “-GetEXIF” and “-GetXMP”.
  • Improved the TrFile_CreateThumbnail function for .CRW (RAW) files, when using the switch “-GetFullSizeRawThumbnail” switch, the function now returns the full size thumbnail embedded in the RAW file.
  • Improved the IPTC_XMP_Metadata.fmp12 example file, it now also demonstrates the use of a image container as a source for the TrFile_GetMetaData function.

Improved ZIP/UnZIP features

  • Added new switch “-DontAddDS_Store” to the TrFile_CreateZIP function. When you add this switch hidden .DS_Store files will not be added to the ZIP file (.DS_Store files can be added to folders by the macOS Finder).
  • Added new switch “-AddMacOSXAttributes” to the TrFile_CreateZIP function. When you add this switch extended attributes and resource forks are added to the ZIP file. If there are extended attributes (or files with resource forks) this will be stored in a “__MACOSX” folder at the top level.
  • (Windows) Improved the UnZip script step and the TrFile_UnZIP function: for corrupted ZIP files (or files that are not ZIPs at all) the plug-in now returns error code $$-4249 (kErrCorruptTag) instead of the (internal) error code $$-77 (initIWMErr).

Bug fixes

  • Fixed a problem while using the encoding switch -Encoding=ASCII_Windows (Windows-1252) : the plug-in no longer crashes when an incorrect or corrupt text with undefined character codes (like for example 0x81) is read. In this case the Unicode replacement character is returned.
  • (macOS) Fixed a problem with the functions TrFile_Substitute, TrFile_SetMetadata and TrFile_InsertContents functions: in some cases (with the source and destination file being equal) these functions would work but incorrectly return an error code $$-47.
  • (Windows) Fixed a problem with creating thumbnails with the Create Thumbnail script step or the TrFile_CreateThumbnail function, the plug-in would not honor the EXIF orientation tag for some JPEG images.
  • (Windows) Fixed a possible memory leak in the Create Thumbnail script step and the TrFile_CreateThumbnail function.
  • Fixed a bug in the TrFile_GetMetaData function: when using the switch “-GetPDFDescription” the plug-in no longer truncates text when it contains a slash.
  • Fixed a problem in the Set MetaData of Image File script step and the TrFile_SetMetaData function. The GPS Altitude Reference can now be set correctly (0 = Above Sea Level and 1 = Below Sea Level).
  • (Windows) Fixed a possible memory leak in the TrFile_GetMetaData function when using the switch “-GetImageDescription”.
  • (Windows) Improved the TrFile_FindFolder function, for the “desktop” switch, in some cases the path to the user folder would be incorrect.
  • Fixed a regressed 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.
  • (macOS) Fixed a bug in the Set Finder Comment script step, the TrFile_SetFinderComment function and the TrFile_SetFileAttribute function with the switch “-FinderComment”. The plug-in no longer returns a $$-1700 error code for some filepaths.
  • Fixed a bug in the TrFile_ExchangeFiles function, which could return error code $$-50.

Other changes and improvements

  • IMPORTANT The minimum supported FileMaker version is now FileMaker Pro 16. Also the minimum supported macOS version is now OS X 10.12 (Sierra), and Windows 8. You can keep using v12.0 for older versions of FileMaker Pro, Windows or Mac OS X.
  • Renamed the Delete File script step to Delete file (note the lower case f), making its name different from the FileMaker native Delete File step. This ensures that when you copy and paste script steps the correct step is pasted.
  • (macOS) Modernized the TrFile_GetFileAttribute function with the switch “-FinderCommentAttr”. It now uses a more modern framework.
  • (macOS) Modernized the Set Finder Comment script step, the TrFile_SetFinderComment function and the TrFile_SetFileAttribute function with the switch “-FinderComment”. They now use a more modern framework.
  • (macOS) Improved compatibility when running FileMaker Pro 19 in dark mode, the flash dialog is now more visible.
  • (macOS) If the plug-in can’t load a bundle at start-up, the plug-in will now write a detailed error to the system.log. See the Console.app in this case (search for FileMaker in the system.log).
  • Improved the GetExif.fmp12 and SetExif.fmp12 example files, they handle the GPS Altitude Reference better (above or below sea level).
  • Improved the EasyInstallTroiPlugins.fmp12 example file: updated the plug-in install scripts. These scripts also give more detailed instructions.
  • In EasyInstallTroiPlugins.fmp12 improved the scripts (and layout) where you can test your registration string for a Server/Web license on FileMaker Server.

Troi File Plug-in 12.0 (for FileMaker 15 to 19) (May 20, 2020)

Improved compatibility

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

New functionality

  • 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 “2.3.0.0”.
  • 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 “2.14.0.5”.
  • 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)
New functionality

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

Older release notes

For older release notes please see here.

We offer the following licenses for Troi File Plug-in:

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.

Pricing

New licenses

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

Upgrades

If you have a license for a previous version, you can buy an upgrade for version 13.x. If you have a current subscription the upgrade is free. If you bought a license on or after November 27, 2020, the upgrade to version 13.x is FREE! Note: eligible users have been sent a new v.13 registration. Contact us if you have not received yours.
If you bought a license before November 27, 2020, you will need to buy an upgrade to use the 13.x 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.
Troi File has been critical to our ability to extend Filemaker’s functionality to allow us to generate a dynamic website with hundreds of pages made up of complex HTML, XML, Javascript and PHP. It would have been impossible to achieve this result without Troi File, which has proved to be a reliable, consistent, and high performance Plug-in.
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

Related pages

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.

Media management
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!