Skip to main content

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 15.0

Works with

FileMaker Pro 16 to 2023
Claris Pro 40.1 to 40.2
FileMaker Server 16 to 2023
macOS 10.15 to 13
Windows 10 to 11

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!

87 functions and 39 script steps give you ample power

Troi File Plug-in adds 87 functions to FileMaker, giving you virtually limitless possibilities! Starting with FileMaker 16 plug-ins can also add script steps. In File Plug-in version 15 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 and drop files into and out of FileMaker

Troi File Plug-in adds several possibilities for dragging and dropping items into and now also out of your database:

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

Drag “file promises” into FileMaker
On macOS you can now drag “file promises” into your FileMaker database. These are files or images that don’t exist yet, which you can receive from a different application. When you add the switch “-AllowFilePromiseDrops” you can drop files or images for example from a web application (like Safari or Photos) to the drop zone. You can also drag custom types from a web application, like a zip file.

Drag files out of FileMaker
We added a new function TrFile_StartDragSource, which allows you to click and drag the (binary) contents of a container field or variable as a file out of FileMaker into other applications (for example a web application). You add this function to a tooltip calculation to enable it on the layout.

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 87 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 15.0

Troi File Plug-in 15.0 is made compatible with Claris FileMaker Pro 2023 (FileMaker Pro 20.1.1) and Claris FileMaker Pro 19 up to version 19.6.3.
In this version we improved the Drag and Drop functionality by adding a new function TrFile_StartDragSource. This allows you to click and drag the (binary) contents of a container field or variable as a file out of FileMaker into other applications (for example a web application). On macOS we added the new switch “-AllowFilePromiseDrops” to the switches parameter of the TrFile_DragAndDrop function. Use this to drag and drop files into your database that don’t exist yet (also known as “file promises”), such as zips or images from a web application.
The TrFile_GetFolderSize function has a new “-SkipInvisibles” switch, which excludes the size of invisible (hidden) files from the returned size.
The TrFile_CreateThumbnail function now supports creating thumbnails from (Apple ProRAW) DNG files. On Windows we significantly improved the speed of creating thumbnails for rotated JPEGs and the speed of the TrFile_GetFileSize function for files on network drives.
We added several switches to the TrFile_GetMetaData function to easily get a single metadata item of a movie instead of a list of (all) movie properties. We also added support for getting EXIF out of PNG images.
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 15.0 (for FileMaker 16 to 2023) (June 1, 2023)

Improved compatibility

  • Tested and made compatible with Claris FileMaker Pro 2023 (FileMaker Pro 20.1.1)
  • Tested and made compatible with Claris FileMaker Pro 19 up to Claris FileMaker Pro 19.6.3.
  • Tested and made compatible with Claris Pro 40.2.1.
  • Tested and made compatible with macOS 13 (Ventura).
  • Tested and made compatible with Windows 11, including Windows 11 version 22H2 (September 20, 2022).

New functionality and improvements

  • Added switch “-SkipInvisibles” to the TrFile_GetFolderSize function.
    If you add this switch the plug-in will not add the size of invisible (hidden) files to the returned size. Invisible files are files with hidden attribute or files with a filename that starts with a period. See also the ListFolder.fmp12 example file.
  • Added support for Digital Negative (DNG) files and Apple ProRAW to the TrFile_CreateThumbnail function. You can now create thumbnails from (Apple ProRAW) DNG files.
  • Improved the Set MetaData of Image File script step and the TrFile_SetMetaData function with the switch “-SetIPTC”. The plug-in will now write the IPTC metdata earlier in the JPEG file, improving compatibility with other applications that read or write IPTC. The plug-in will now also correct the position of existing (IPTC) metadata when you set IPTC metadata.
  • (Windows) Enhanced the TrFile_CreateThumbnail function and
    significantly improved the speed of creating thumbnails for rotated JPEGs (with internal orientation tags other than horizontal in the EXIF).
  • (macOS) Improved extended attributes (xattrs) support with the script steps:

    and the functions:

    If the source file has extended attributes they are also copied to the destination file. If the source file has a (legacy) resource fork stored as xattr this is also copied.

Improved Security

  • Improved the code in several places and made it more secure.
  • (macOS) Modernized the code and removed dependency on legacy Carbon code in several places.

Increased speed

  • (Windows) Improved the speed of the TrFile_GetFileSize function for files on network drives.
  • (Windows) Added switch “-UseClassicGetFileSize” to the TrFile_GetFileSize function. If you add this switch the plug-in will use the original implementation of getting the file size.

Improved Drag and Drop functionality

  • Drag and drop is now compatible with FileMaker Pro 2023!
  • (macOS only) Improved the drag and drop functionality by allowing File Promise Drops. You can now drag files that don’t exist yet, a.k.a. file promises to the FileMaker window. To enable this extra functionality add the new switch “-AllowFilePromiseDrops” to the switches parameter of the TrFile_DragAndDrop function. When you have enabled this, you can drop files (like zips) or images for example from a web application (in Safari) to the drop zone.
  • Added new function TrFile_StartDragSource, which can be used to start drags of any file type from the FileMaker window to for example a web application or the Finder. You can specify what to drop from a container field (or a variable with container data). After a successful drag you can also trigger a script. You add this function to a tooltip calculation to enable it on the layout.
    For debugging you can also add this switch: “-HighlightDragSource”, which will show the (current) rectangle of the DragSource (macOS only).NOTE: Files stored as reference that cannot be found will create a text file: fileReference.txt. This will contain the filename and the (broken) path to the file.
  • (macOS) Improved the drag and drop functionality, improved the code and made it more robust if paths cannot be found or converted. Also improved handling of multiple mail drops on macOS 10.15 and later.
  • (macOS) Improved the MailDrop functionality. Temporary files in the TroiTEMPDRAGFOLDER folder are now deleted after the system restarts and no longer show up in a Rescued Items folder in the trash.
  • Updated the DragAndDrop.fmp12 example. Added notes and optional script steps to better find the bounds for drop zones on layouts with a Top Navigation Part.
    You can find this in the scripts that will add a drag and drop handler by calling the TrFile_DragAndDrop function. See the scripts:

    • _Start Accept. DragAndDrop (in container fieldbounds)
    • Start Accept. DragAndDrop (in fieldbounds of zone2 or zone3 object)
  • Also improved dropping mail into the DragAndDrop.fmp12 example. It now handles slow maildrops better, by waiting up to 5 seconds.
  • Fixed a problem in the Add DragAndDrop Handler script step and the TrFile_DragAndDrop function: drag and drop now correctly works with FileMaker Pro 2023 (FileMaker Pro 20.1.1).

Improved (movie) metadata support

  • Improved the TrFile_GetMetaData function: you can use these switches to easily get a single metadata item of a movie:
    • -GetMovieTitle
    • -GetMovDescriptionStr *
    • -GetMovieKeywords
    • -GetMovieAlbum
    • -GetMovieArtist
    • -GetMovieAuthor
    • -GetMovieComment
    • -GetMovieCopyright
    • -GetMovieInformation
    • -GetMovieProducer
    • -GetMovieDirector
    • -GetMovieEncodedBy

    * Note that the -GetMovDescriptionStr switch is different from the existing -GetMovieDescription switch, which returns a list of (all) movie properties.

  • Improved the TrFile_GetMetaData function: added support for getting EXIF out of PNG images.
    NOTE Exif support was added to the PNG format on July 2017, in the “Extensions to the PNG 1.2 Specification, Version 1.5.0”.

Startup Registration Log

  • Improved the EasyInstallTroiPlugins.fmp12 example file (v1.8.6): added a script which adds the Startup Registration Log to the log field. This will get a text log of the startup registration process of the plug-in.
  • Added an example script “Get Startup Registration Log of the plug-in” of Version.fmp12, which gets the text log of the startup registration of the plug-in.
  • Added switch “-GetStartupRegistrationLog” to the TrFile_Version function. This will return a text log of the plug-in’s registration process at startup time of FileMaker Pro. When you have problems registering the plug-in, you can see if the payment certificate was found and if a valid registration code was found.

Other bug fixes

Troi File Plug-in 14.0 (for FileMaker 16 to 19) (August 18, 2022)

Improved compatibility

  • Tested and made compatible with Claris FileMaker Pro 19.5 including FileMaker Pro 19.5.2.
  • Tested and added initial compatibility with the upcoming Windows 11 version 22H2.
  • Tested and added initial compatibility with the upcoming macOS 13 Ventura.

New functionality and improvements

  • Added new TrFile_GetFileName function, which returns the name of a file (or folder) in a filePath, including the extension. The file does not need to exist. A returned result can be for example “Readme.txt”.
  • Updated the Attribute example file with an example of the new TrFile_GetFilename function.
  • Added new TrFile_GetPreferredLanguages function, which returns a list of the preferred language and country codes of the current user. The returned result can be for example:
    • en-US
    • nl-NL
    • en-GB

    You can also add the switch “-GetFirstLanguage” to only get the first preferred language-country of the list.

  • Added new switch “-GetIccProfileName” to the TrFile_GetMetaData function: this will get the name of the embedded ICC Color Profile in the JPEG, for example it will return “sRGB IEC61966-2.1” or “Generic RGB Profile”.
    If no ICC Profile is embedded error code $$-2026 (userDataItemNotFound) is returned.
  • Added new switch “-GetLocalizedIccProfileName” to the TrFile_GetMetaData function: this will get the localized name of the embedded ICC Color Profile in the JPEG. Based on the user language settings it will return the ICC name that best matches the user language. For example for an Italian user it can return “Profilo RGB generico”.
  • Added new switch “-GetIccProfileDescription” to the TrFile_GetMetaData function: this will return a text description of the properties of the embedded ICC Color Profile. The result is formatted as a list. You can also add the switch “-Format=XML” to get the result in XML format, with the XML tags colored blue. When you also add the switch “-DontAddStyle” the result is in plain text.
  • (macOS) Improved the ExecuteShell.fmp12 example file: added an example on how to use sudo so you can execute commands as a superuser with the TrFile_ExecuteShell function.
  • (macOS) Improved the help text in the calculation dialog for the TrFile_Search function, it now shows the two essential switches to use: “-files” and/or “-folders”.

Improved HEIC/HEIF image format support

  • (macOS 10.15 and later) The TrFile_CreateThumbnail function now supports creating thumbnails from HEIC (High Efficiency Image File Format) image files. This includes .heic images created on iOS and other images with the .heif extension.
  • (Windows 10 version 20H2 and later, Windows 11) The TrFile_CreateThumbnail function can now create thumbnails from HEIC (High Efficiency Image File Format) image files. You will need to install the HEVC Video Extensions from Microsoft (which costs $0.99). Thumbnail support also includes .heic images created on iOS and other images with the .heif extension. See also How to install HEVC Video Extensions on Windows.
  • (Windows 11 and later) Added support for HEIC (High Efficiency Image File Format) image files: the TrFile_GetMetaData function with the switch “-GetImageDescription” now returns a description like codec name and type.

Improved iCloud Drive functionality (macOS)

  • Added switch “-iCloudStartDownloadingItem” to the TrFile_SetFileAttribute function. This will start the download of a file on the iCloud Drive to the local disk. For files already locally on the disk, this function won’t do anything and the function will return error code 0. You can also specify a folder on iCloud Drive, in this case iCloud will start downloading local copies of all files enclosed by this folder.
  • Added switch “-iCloudRemoveLocalCopy” to the TrFile_SetFileAttribute function. This will remove the local copy of a file on the iCloud Drive. The file will not be removed from iCloud! For files not on the iCloud Drive, this function won’t do anything and return error code 0. You can also specify a folder on iCloud Drive, in this case the local copies of all files enclosed by this folder will be removed.
  • Added iCloud Status example to the Attribute.fmp12 example file. This demos getting and changing the iCloud status of files and also demonstrates the switch “-AllowNonLocalCloudItems” of the TrFile_SelectFileDialog function, which allows you to select files that are not downloaded to the local disk.

Bug fixes

  • (Windows) Fixed a bug in the TrFile_GetZipInfo function, where only one filename would be returned even if more files are present in the ZIP archive.
  • (macOS) Fixed a bug in the TrFile_GetContents function, where FileMaker could crash if the filePath specified a folder. Now the function returns $$-1302 (notAFileErr) in this case.
  • (macOS) The plug-in would return error code $$-47 (fBsyErr) in some cases where the user did not have sufficient access permissions, for example when getting the contents of a file. In this case the plug-in now returns the more correct error code $$-54 (permErr = permissions error).
  • (macOS) Fixed a problem with the
    Move Folder and
    Copy Folder script steps and the
    TrFile_MoveFolder and
    TrFile_CopyFolder functions, where the plug-in would return error code $$-47 (fBsyErr) when the destination folder exists. It will now correctly return $$-48 (dupFNErr) if the destination folder exists.
  • Improved the GetExif.fmp12 and SetExif.fmp12 example files, the EXIF padding tag is now parsed too.
  • (Windows) The plug-in no longer returns error $$-120 (dirNFErr; directory not found) when specifying valid UNC paths that use forward slashes as separators (as opposed to backward slashes). So you can now use paths like this: “//Server/share/file.txt”.
  • Fixed a bug in the TrFile_GetContents function, where
    the plug-in would not return the expected error code $$-39 (eofErr) when the start parameter was past the end of the file.
  • (macOS) Fixed a problem with the
    Move Folder and
    Copy Folder script steps and the
    TrFile_MoveFolder and
    TrFile_CopyFolder functions, where the plug-in could sometimes return error code $$-122 (badMovErr) incorrectly indicating that the destination folder is inside the source folder even when source and destination where valid.

Other changes and improvements

  • Improved the example file ManageMedia.fmp12, it now properly handles slashes in folder names and file names: slashes are now converted to colons in the FileMaker style path.
  • IMPORTANT The minimum supported macOS version is now macOS 10.14 (Mojave 10.14).

Troi File Plug-in 13.1 (for FileMaker 16 to 19) (November 24, 2021)

Improved compatibility

  • Tested and made compatible with Claris FileMaker Pro 19.3 and FileMaker Pro 19.4.
  • Tested and made compatible with Windows 11.
  • Tested and made compatible with macOS 12 (Monterey) both on Intel and Apple Silicon (arm64).

New functionality and improvements

  • Improved the Add Drag and Drop Handler script step and the TrFile_DragAndDrop function: you can now add up to 6 different drag and drop handlers.
  • Improved drag and drop functionality of the TrFile_DragAndDrop function: you can now selectively stop handlers in the same file and/or with the same script name. You can specify it like this: TrFile_DragAndDrop( "-StopDragAndDrop" ; fileName ; { scriptName } )
  • Improved the TrFile_GetAsPlainText function: you can now get the plain text from a PDF in a container field (or a variable with container data of a PDF).
  • Improved the TrFile_CreateThumbnail function. You can now specify any size of thumbnail up to 32767 x 32767 pixels. You no longer need to add the “-AllowAllThumbnailSizes” switch.
  • Improved the Set MetaData of Image File script step and the TrFile_SetMetaData function with the switch “-SetEXIF”. The EXIF tags and data are now added to the image file in numerical order, even if the tags in the metadatablock parameter are out of sequence.
  • Improved parsing of PDFs in the TrFile_GetMetaData function and using the switch “-GetPDFDescription”: The plug-in now can better parse incrementally updated PDFs.
  • Improved the TrFile_GetMetaData function when using the switch “-GetPDFDescription”: the plug-in properly parses UTF-16 encoded fields in the metadata information.
  • Improved the TrFile_GetMetaData function when using the switch “-GetPDFDescription”: the plug-in now shows if the PDF is encrypted and if the PDF contains a cross-reference stream object (as introduced with PDF 1.5).
  • (Windows) Improved returned error codes in the functions that retrieve dates and time from a file, like the TrFile_GetDateCreated and TrFile_GetTimestampModified functions: when the file does not exist these functions now return the documented error code $$-43 (fnfErr; File not found) instead of $$2.
  • Improved the EasyInstallTroiPlugins.fmp12 example file (v1.8.2): improved the scripts which can test your registration string for a Server/Web license on FileMaker Server.
  • (macOS) The Launch File script step and the TrFile_Launch function now can return a more relevant error code when the launch does not work.

Bug fixes

  • (Windows) Fixed a problem with FileMaker Pro 19.4, which would freeze the application or return a question mark in some functions.
  • (macOS) Fixed a problem on macOS 12 (Monterey) and FileMaker Pro 19.4, where the plug-in would not show the plug-in icon in the flash dialog.
  • (macOS) Fixed a bug that prevented the plug-in from loading in FileMaker Pro 16 (installing it would result in error code 1550).
  • (macOS) Fixed a problem with the Launch File script step and the TrFile_Launch function, where the launch would not work for files on a AFP network disk.
  • (Windows) Fixed a problem where the TrFile_SelectFileDialog function would not always show the places bar; a simpler selection dialog would be shown.
  • Fixed a bug in the TrFile_GetMetaData function, which would make FileMaker Pro crash or become non-responsive.

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

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 (Advanced) and Claris Pro, 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 (Advanced) and Claris Pro, 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. 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 $ 109 per user
10-user license US $ 499
25-user license US $ 819
developer license US $ 819
server/web license US $ 499

Upgrades

If you have a license for a previous version, you can buy an upgrade for version 15.x. If you have a current subscription the upgrade is free. If you bought a license on or after August 18, 2022, the upgrade to version 15.x is also free! Note: eligible users have been sent a new v.15 registration code. Contact us if you have not received yours.
If you bought a license before August 18, 2022, you will need to buy an upgrade to use the 15.x version:

single user license upgrade US $ 69 per user
10-user license upgrade US $ 289
25-user license upgrade US $ 429
developer license upgrade US $ 429
server/web license upgrade US $ 289

Below are a few things our users had to say about Troi File Plug-in:

“You know that you have a good product when someone (me) buys it just because of a single function.
In my case, it is TrFile_CreateThumbnail function.
That problem (creating thumbnails) alone has taken me days to try and figure out (MBS = nope, Claris = nope). It does exactly what I need and more. We have an in-house application and need accurate thumbnails on image and PDF files. NOBODY but you gets it right.
I especially like the PDF support, variable bit-depth, and PNG with Alpha channel support. And the simplicity of calling the function means I can easily use it in a calculated field. It is what Filemaker’s GetThumbnail should have been, except on steroids!
Thank you for solving my long running problem.”

John Taylor, CEO, Lead Free Design

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

Using SMB styled paths with Troi File Plug-in
Learn how to use SMB styled paths as parameters for any file or folder path and how to add a port number too if the SMB server is available on a different port.

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!