FileMakerの各種パスの扱いを徹底攻略 ①パス取得編【脱初心者への道】

FileMakerの各種パスの扱いを徹底攻略①パス取得編【脱初心者への道】

パスの扱いがかなり独特なFileMaker(正式名称:Claris FileMaker)

この記事では、FileMakerのパス取得と形式変換の基礎を理解し、環境の差やプラグインとの連携時に詰まらなくなることを目指しています。

FileMaker形式と標準形式の使い分け

FileMakerには独自のパスルールがあり、Windows・Macという環境を問わず、「¥」(円マーク)や「\」(バックスラッシュ)ではなく「/」(スラッシュ)区切りでパスを管理します。
またファイルを指定する場合には、パスの頭に「filewin:」「filemac:」「image:」などの接頭語を付ける必要があります。

  • /C:/Users/******/Desktop/
  • image:/C:/Users/******/Desktop/test.jpg
  • filemac:/Macintosh HD/Users/******/Desktop/test.pdf

これらをFileMaker形式のパスと呼びます。

一方で、普段パソコンを扱う際には

  • \C:\Users\******\Desktop\
  • \C:\Users\******\Desktop\test.jpg
  • /Macintosh HD/Users/******/Desktop/test.pdf

といった形式のパスを扱うのではないでしょうか。

これらを標準形式のパスと呼びます。

FileMakerでパスを扱う際に重要なのは、扱っているのが「FileMaker形式のパス」と「標準形式のパス」どちらなのか、をきちんと理解しておくことです。

今記事では、よく使うパスの取得方法と、WindowsとMacそれぞれでどのような値が取得できるかを一覧化しています。

検証環境

macOS 14.7.2 (Sonoma)
Windows 11 Home
FileMaker 2024
BaseElements Plugin 5.0.0

よく使うパスの取得方法

実務でよく使用する、パス取得に関する関数・スクリプトステップは主に4つです。

Get ( デスクトップパス )

使用中のデバイスのデスクトップフォルダのパスを取得できる関数です。
レコードのPDFやcsvを書き出す際、サクッとデスクトップを指定したいときなどに使用します。

※Get ( デスクトップパス )のFileMakerドキュメント

機種取得値
Windows/C:/Users/******/Desktop/
Mac/Macintosh HD/Users/******/Desktop/

取得できるのはFileMaker形式のパスです。

Get ( テンポラリパス )

FileMakerテンポラリフォルダへのパスを取得できる関数です。
テンポラリフォルダのデータはFileMakerを終了すると削除されるため、一時的に書き出したいファイルを扱う際に使用します。

※Get ( テンポラリパス )のFileMakerドキュメント

機種取得値
Windows/C:/Users/******/AppData/Local/Temp/S11/
Mac/Macintosh HD/var/folders/1k/******************************/T/S11/

取得できるのはFileMaker形式のパスです。

フォルダパスを取得

スクリプトステップの「フォルダパスを取得」を使うと、ユーザーにフォルダ選択を促せます。
書き出すデータの保存先を選択させたい場合などに使用します。

※フォルダパスを取得のFileMakerドキュメント

下記はデスクトップを選択した際に取得できる値です。

機種取得値
Windows/C:/Users/******/Desktop/
Mac/Macintosh HD/Users/******/Desktop/

取得できるのはFileMaker形式のパスです。

BE_FileSelectDialog

フォルダではなくファイルの選択を促したい場合は、BaseElementsプラグインの関数「BE_FileSelectDialog」を使います。
インポートさせたいcsvファイルを選ばせる、といった場面で使用します。

下記はデスクトップ上のtest.jpgを選択した場合に取得できる値です。

機種取得値
WindowsC:\Users\******\Desktop\test.jpg
Mac/Users/******/Desktop/test.jpg

取得できるのは標準形式のパスです。

取得したパスの相互変換

FileMakerには、「FileMaker形式のパス」と「標準形式のパス」を相互に変換する関数が用意されています。

  • ConvertToFileMakerPath
  • ConvertFromFileMakerPath

Toの方は、FileMaker形式へのパス“に”(To)変換。
Fromの方は、FileMaker形式のパス“から”(From)標準形式のパスに変換。
接続詞を考えると、どっちがどっちだっけ?となりにくいです。

今扱っているパスがどの形式なのかを理解していないと誤用しがちな関数です。

どちらの関数も、引数でパスと形式を渡す必要があります。

フォーマット形式:PosixPathとWinPath

関数を用いてパスを変換する際、変換時のパス形式を求められます。
基本的には、PosixPathとWinPathのどちらかを指定します。

使い分けをざっくり言えば、MacならPosixPath、WindowsならWinPathを使います。

ConvertToFileMakerPath

標準形式のパスをFileMaker形式のパスに変換する関数です。

BaseElementsプラグインの関数で取得できるのは標準形式のパス。
このパスをFileMaker標準のスクリプトで使用したい場合に変換をかけます。

※ConvertToFileMakerPathのFileMakerドキュメント

※下記一例はデスクトップ上のtest.jpgを選択した場合に取得できる値です。

PosixPath形式へ変換する場合

ConvertToFileMakerPath ( BE_FileSelectDialog ( "取り込む画像ファイルを選択" ) ; PosixPath )
機種取得値
Windowsfile:C:\Users\******\Desktop\test.jpg
Macfile:/Macintosh HD/Users/******/Desktop/test.jpg

WindowsでPosixPath形式の変換をかけると、円マーク(バックスラッシュ)形式のパスを取得してしまうため注意が必要です。

WinPath形式へ変換する場合

ConvertToFileMakerPath ( BE_FileSelectDialog ( "取り込む画像ファイルを選択" ) ; WinPath )
機種取得値
Windowsfile:/C:/Users/******/Desktop/test.jpg
Macfile:/Users/******/Desktop/test.jpg

MacでWinPath形式の変換をかけると、Windows用のデスクトップパスを取得できます。

初心者がやりがちな間違い

Get ( デスクトップパス )など、FileMaker標準の関数で取得したパスを用いて作ったファイルパスをFileMakerパスに変換しようとしてしまう、というのはやりがちな間違いだと思われます。

ConvertToFileMakerPath ( Get ( デスクトップパス ) & "test.jpg" ; PosixPath )
機種取得値
Windowsfile:/C:/C:/Users/******/Desktop/test.jpg
Macfile:/Macintosh HD/Macintosh HD/Users/******/Desktop/test.jpg

Get ( デスクトップパス )で取得できる値はFileMaker形式のパスなので、このパスを引数にするのは誤りです。
「C:/」や「Macintosh HD/」の連続する値を取得してしまうため使用できません。

ConvertToFileMakerPath ( Get ( デスクトップパス ) & "test.jpg" ; WinPath )
機種取得値
Windowsfile:/C:/Users/******/Desktop/test.jpg
Macfile:/Macintosh HD/Users/******/Desktop/test.jpg

使用法として正しくないはずなのですが、WinPath形式で変換すると正しい値を取得できてしまいます。

ConvertFromFileMakerPath

FileMaker形式のパスを標準形式のパスに変換する関数です。

FileMaker標準のスクリプトや関数で取得したパスを、BaseElementsプラグインの関数で使用したい場合に変換をかけます。

※ConvertFromFileMakerPathのFileMakerドキュメント

PosixPath形式へ変換する場合

ConvertFromFileMakerPath ( Get ( デスクトップパス ) & "test.jpg" ; PosixPath )
機種取得値
Windows?
Mac/Users/******/Desktop/test.jpg

WindowsではPosixPath形式に変換できずにエラーが出てしまいます。

WinPath形式へ変換する場合

ConvertFromFileMakerPath ( Get ( デスクトップパス ) & "test.jpg" ; WinPath )
機種取得値
WindowsC:\Users\******\Desktop\test.jpg
Mac?

MacではWinPath形式に変換できずにエラーが出てしまいます。

まとめ

FileMakerでは、FileMaker形式のパス標準形式のパスの2種類を使い分けます。

パスの取得でよく使う関数やスクリプトステップは下記4種です。

  • Get ( デスクトップパス )
  • Get ( テンポラリパス )
  • フォルダパスを取得
  • BE_FileSelectDialog

パスは、下記2種の関数で相互に変換できます。

  • ConvertToFileMakerPath
  • ConvertFromFileMakerPath

パス変換時に指定する形式はざっくり下記2種。
使用しているデバイスで使い分けます。

  • Windowsの場合:WinPath
  • Macの場合:PosixPath

パスの扱いは混乱しがちですが、攻略できるとFileMakerでできることの幅が格段に広がります。
次回は、これらのパスの実際に活用する方法を攻略記事です。

FileMaker形式と標準形式を華麗に使い分けてFileMakerパスマスターを目指そう!

タイトルとURLをコピーしました